标记内标记 Django 模板
Posted
技术标签:
【中文标题】标记内标记 Django 模板【英文标题】:Tag inside tag Django template 【发布时间】:2020-10-29 18:48:10 【问题描述】:首先,让我展示一下我们的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。
【问题讨论】:
【参考方案1】:在视图中使用zip
例如:
context =
'data' : zip(id, durum)
然后在模板中
用途:
% for id, durum in data %
id
durum
% endfor %
【讨论】:
【参考方案2】:您可以使用列表推导。
所以,例如:
my_list = list(zip(context['id'], context['durum'], context['range']))
然后在模板中,可以使用:
% for item in my_list %
item.0 -- item.1
% endfor %
【讨论】:
【参考方案3】:嗯,你好像是从其他语言迁移到 python 的。您通常不会在 python for 循环中使用索引(它们更容易和更直观),这就是为什么您很难“配对”这些值。如果您仍然可以重构代码,而不是使用匹配索引上的属性列出列表,请使用dict
。一 - 它会让你在 django 模板中轻松解压
% for id, durum in my_dict %
id durum
% endfor %
二 - 它将防止与错误索引相关的任何错误,因为您只需调用id
,它就会得到正确的durum
。三 - 更新此类数据集将非常容易。
my_dict.update(new_id: new_durum)
请考虑花一点时间学习新东西,因为这会让您的 Python 体验更加愉快。哦,顺便说一句 - 大多数时候你不必指定 context.something
调用 - 它足以调用 something
【讨论】:
以上是关于标记内标记 Django 模板的主要内容,如果未能解决你的问题,请参考以下文章
django 模板 第 10 行的未封闭标记:'if'。寻找以下之一:endif
在 Javascript 中使用 DJango 模板标签添加 Google 地图标记