我已经阅读了关于密钥中循环变量的所有模板标签帖子。显然Django不支持键中的循环变量,我不知道如何使用自定义模板标记。
我想显示这样的内容,但是如何通过{%for i in mData%}循环来实现这一点?
{{ mData.0.name }}
{{ mData.1.name }}
{{ mData.2.name }}
{{ mData.0.age }}
{{ mData.1.age }}
{{ mData.2.age }}
mData是字典列表。
mData = {" name":" alex"," age":" 12"},{" name&# 34;:" amy","年龄":" 14"} ...
答案 0 :(得分:2)
考虑您的数据位于字典列表中,例如:
my_data = [{"name" : "abc" , "age":20,...}, {} , {}...]
您可以通过以下方式访问模板中每个字典的所有属性:
{% for dict in my_data %}
<!-- Here dict would be each of the dictionary in my_data -->
<!-- You can access elements of dict using dot syntax, dict.property -->
{{ dict.name }}, {{ dict.age }}, ... {{ dict.property }}
{% endfor %}
参考链接:Django templating language
如果您想按照指定的顺序构建元素,可以执行以下操作:
Name List:
{% for dict in my_data %}
my_data.name
{% endfor %}
Age List:
{% for dict in my_data %}
my_data.age
{% endfor %}
...
Prpoerty List:
{% for dict in my_data %}
my_data.property
{% endfor %}
答案 1 :(得分:1)
Django模板标签有意非常轻量级,因此您不必将太多代码放入模板本身。如果你需要做一些复杂的事情,比如循环数据库中的每个其他条目,你应该在views.py而不是模板中进行设置。
对于您描述的场景,您需要做的就是遍历对象列表:
{% for data in datas %}
{{ data.name }}
{% endfor %}
{% for data in datas %}
{{ data.age }}
{% endfor %}
答案 2 :(得分:1)
这解决了我的问题
{% for d in mData %}
{{ d.name }} {{ d.age }}
{% endfor %}
答案 3 :(得分:0)
{% for k, v in mData.items %}
{{ k }} {{ v }}
顺便说一下,PEP8建议我们将变量命名为lower
+ _
,但不要像javascript或其他语言那样驼背。