mydict = {"key1":"value1", "key2":"value2"}
Run Code Online (Sandbox Code Playgroud)
在Django模板中查找字典值的常规方法是{{ mydict.key1 }}
, {{ mydict.key2 }}
.如果键是循环变量怎么办?即:
{% for item in list %} # where item has an attribute NAME
{{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
mydict.item.NAME
失败.如何解决这个问题?
我的视图代码基本上看起来像这样:
context = Context()
context['my_dict'] = {'a': 4, 'b': 8, 'c': 15, 'd': 16, 'e': 23, 'f': 42 }
context['my_list'] = ['d', 'f', 'e', 'b', 'c', 'a']
Run Code Online (Sandbox Code Playgroud)
我想在Django模板中做的是:
<ul>
{% for item in my_list %}
<li>{{ item }} : {{ my_dict.item }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
我希望这输出:
<ul>
<li> d : 16 </li>
<li> f : 42 </li>
<li> e : 23 </li>
<li> b : 8 </li>
<li> c : 15 </li>
<li> a : 4 </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
但是通过变量名称via对dict的引用 …
嗨,我正在使用App Engine/Python来做一个简单的网站.我有一个Django模板问题的麻烦.
简而言之,我想使用"ShortName"来访问"LongName".
源代码:
LongName={"so":"stackoverflow","su":"superuser"}
ShortName=['so','su']
Run Code Online (Sandbox Code Playgroud)
然后我将这两个参数传递给模板.
在我写的模板中:
{% for aname in ShortName %}
{{ aname }} stands for {{ LongName.aname }},
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
输出是:
so stands for, su stands for
Run Code Online (Sandbox Code Playgroud)
没有错误.该LongName.aname
不会工作.
我不知道什么是错的.