[英]Tag inside tag Django template
首先,让我展示一下我们的views.py 文件。
context = {
'id' : id,
'durum' : durum,
'range': range(len(id)),
}
我在模板中有这样的数据;
context.id = [12, 10, 10]
context.durum = ['UPL','PPL','FIUPL']
我想像这样匹配这些数据;
12 UPL
10 PPL
10 FIUPL
我为此创建了一个 for 循环,但需要编辑
{% for i in context.range %}
{{ context.id }}
{{ context.durum }}
{% endfor %}
像这样;
{% for i in context.range %}
{{ context.id.i }}
{{ context.durum.i }}
{% endfor %}
但我不能在循环中使用变量 i 。
在视图中使用zip
前任:
context = {
'data' : zip(id, durum)
}
然后在模板中
利用:
{% for id, durum in data %}
{{ id }}
{{ durum }}
{% endfor %}
您可以使用列表理解。
因此,例如:
my_list = list(zip(context['id'], context['durum'], context['range']))
然后在模板中,您可以使用:
{% for item in my_list %}
{{ item.0 }} -- { item.1 }}
{% endfor %}
好吧,您似乎从其他语言转移到 python。 您通常不会在 python 中为循环使用索引(它们更容易和更直观),这就是为什么您很难“配对”这些值。 如果您仍然可以重构您的代码,而不是使用匹配索引上的属性列出来使用dict
。 一 - 它会让你在 django 模板中轻松解压
{% for id, durum in my_dict %}
{{ id }} {{ durum }}
{% endfor %}
二 - 它将防止与错误索引相关的任何错误,因为您只需调用id
它将获得正确的durum
。 三 - 更新此类数据集将非常容易。
my_dict.update({new_id: new_durum})
请考虑花一点时间学习新东西,因为它会让您的 python 体验更加愉快。 哦,顺便说一句 - 大多数时候你不必指定{{ context.something }}
调用 - 它足以调用{{ something }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.