Kin*_*Kin 2 python django dictionary
我正在尝试构建模板标签,使用字典settings.py来构建菜单.
我将此作为模板的一部分.
{% for menu_item in menu %}
<li class="single-link"><a href="{{ menu_item.url }}" title="{{ menu_item.caption }}">{{ menu_item.caption }}</a></li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
传递给此标记的上下文包含
context['menu'] = {'keywords': {'url': '#', 'caption': 'test'}, 'start': {'url': '#', 'caption': 'test'}, 'flippa': {'url': '#', 'caption': 'test'}}
Run Code Online (Sandbox Code Playgroud)
{{ menu.start.caption }}工作正常,但在我的for循环中,menu_item只包含just 'keywords'或'start'or 'flippa'和using .根本不起作用.
谁知道我在做错了什么?
免责声明:我一直只使用django和python一周!
在Django模板中,就像在标准Python中一样,for在字典上使用只是遍历键.你需要使用这个.items()方法:
{% for key, value in menu.items %}
<li class="single-link"><a href="{{ value.url }}" title="{{ value.caption }}">{{ value.caption }}</a></li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
(虽然我发现你实际上并没有在这里使用密钥,所以你可以使用它for value in menu.values).
另请注意,在任何情况下,字典可能都不是您项目的正确容器,因为您无法定义排序.正如armonge所说,列表可能更好.
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |