在django模板上使用keys()

时间:2012-08-24 09:50:54

标签: python django django-templates

这是一个使用dict.keys()

的快速问题

我正在py文件中返回一个字典 例如:

response['dict'] = {'a': [1,2,4], 'b': [5,6,7]}

在html中我试图使用键循环

{% if dict %}
  {% for list in dict.keys() %}
    list
  {% endfor %}
{endif}

这是一个错误。

  

TemplateSyntaxError:无法解析余数:'keys()'   “dict.keys()

需要帮助。如何在Django中使用它?

2 个答案:

答案 0 :(得分:5)

{% if dict %}
  {% for key, value in dict.items %}
    list
  {% endfor %}
{endif}

修改

不需要

{% if dict %} - 如果给定上下文的变量是空的(或者它是空的dict),它会默默地传递:

  {% for key, value in dict.items %}
    list
  {% endfor %}

答案 1 :(得分:-3)

可能是因为dict是Python中的保留关键字。尝试

{% if d %}
  {% for key in d.keys() %}
    list
  {% endfor %}
{endif}

或只是

{% if d %}
  {% for key in d %}
    list
  {% endfor %}
{endif}

python中字典上的迭代器默认情况下是在键上,因此您不必指定您想要键而不是.items().values()