【问题标题】:Django Template: key, value not possible in for loopDjango模板:键,值在for循环中不可能
【发布时间】:2018-03-08 07:34:14
【问题描述】:

我得到的错误:

在 for 循环中解压需要 2 个值;得到 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 }} 显示我的字典。

【问题讨论】:

    标签: python django django-templates django-views


    【解决方案1】:

    遍历字典的项目以获取键和值:

    {% for key, value in test.items %}
    

    【讨论】:

      【解决方案2】:

      不熟悉 Django。但是,默认情况下,Python 会遍历字典的键。我还将假设您使用的是 Python2。要获取值,您需要执行以下操作:

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

      如果你想要两者,你需要这样做:

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

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

      【讨论】:

      • 不能在模板中使用函数符号,"()" 会报错
      猜你喜欢
      • 1970-01-01
      • 2017-09-22
      • 2012-07-25
      • 2021-10-17
      • 2018-05-25
      • 2017-12-23
      • 1970-01-01
      • 2017-03-27
      • 2014-09-14
      相关资源
      最近更新 更多