繁体   English   中英

标签内标签 Django 模板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM