【问题标题】:django template and dictionary of listsdjango 模板和列表字典
【发布时间】:2012-11-13 16:52:34
【问题描述】:

我用的是django的模板系统,遇到以下问题:

我将字典对象 example_dictionary 传递给模板:

example_dictionary = {key1 : [value11,value12]}

我想做以下事情:

{% for key in example_dictionary %}
// stuff here (1)
{% for value in example_dictionary.key %}
// more stuff here (2)
{% endfor %}
{% endfor %}

但是,这不会进入第二个 for 循环。

确实,如果我说

{{ key }}

在 (1) 上,它显示了正确的键,但是,

{{ example_dictionary.key }}

什么都不显示。

this answer,有人提议使用

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

但是,这在这种情况下不起作用,因为我希望 (1) 获得有关特定键的信息。

我如何实现这一目标?我错过了什么吗?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    我假设您正在寻找一个嵌套循环。在外部循环中,您使用字典键执行某些操作,在嵌套循环中,您迭代可迭代的字典值,在您的情况下是一个列表。

    在这种情况下,这是您需要的控制流:

    {% for key, value_list  in example_dictionary.items %}
      # stuff here (1)
      {% for value in value_list %}
        # more stuff here (2)
      {% endfor %}
    {% endfor %}
    

    一个样本:

    #view to template ctx:
    example_dictionary = {'a' : [1,2]}
    
    #template:
    {% for key, value_list  in example_dictionary.items %}
      The key is {{key}}
      {% for value in value_list %}
        The key is {{key}} and the value is {{value}}
      {% endfor %}
    {% endfor %}
    

    结果将是:

    The key is a
    The key is a and the value is 1
    The key is a and the value is 2
    

    如果这不是您想要的,请使用示例来说明您的需求。

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2018-01-27
      • 2016-02-29
      • 2021-06-11
      • 2016-08-31
      • 2011-08-12
      • 2012-07-27
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多