代码之家  ›  专栏  ›  技术社区  ›  bonblow

Django模板:键,值在for循环中不可能

  •  12
  • bonblow  · 技术社区  · 7 年前

    我得到的错误:

    需要2个值才能在for循环中解包;得到1。

    这是我的 :

    class Index(View):
        def get(self, request, slug):
            test = {
                1: {
                    'id': 1,
                    'slug': 'test-slug-1',
                    'name': 'Test Name 1'
                },
                2: {
                    'id': 2,
                    'slug': 'test-slug-2',
                    'name': 'Test Name 2'
                }
            }
            context = {
                'test': test
            }
            return render(request, 'wiki/category/index.html', context)
    

    这是我的 :

    {% block content %}
        <div>
            {{ test }}
            <ul>
                {% for key, value in test %}
                    <li>
                        <a href="#">{{ key }}: {{ value }}</a>
                    </li>
                {% endfor %}
            </ul>
        </div>
    {% endblock %}
    

    我还尝试了以下模板:

    {% block content %}
        <div>
            {{ test }}
            <ul>
                {% for value in test %}
                    <li>
                        <a href="#">{{ value }}: {{ value.name }}</a>
                    </li>
                {% endfor %}
            </ul>
        </div>
    {% endblock %}
    

    那么没有错误,但是 {{ value }} 显示键(这很好),但是 {{ value.name }} 没有显示任何内容。虽然 {{ test }} 显示我的dict。

    2 回复  |  直到 7 年前
        1
  •  33
  •   Alasdair    7 年前

    循环字典中的项以获取键和值:

    {% for key, value in test.items %}
    
        2
  •  -1
  •   Pedram Parsian vikashkmr3188    4 年前

    {% for value in test.itervalues() %}
    

    {% for key, value in test.iteritems() %}
    

    这将为您提供关键和价值。