gpt4 book ai didi

django - 如何在 Django 模板中使用变量索引访问列表?

转载 作者:行者123 更新时间:2023-12-04 03:22:15 26 4
gpt4 key购买 nike

比如说,我有两个对象列表,foobar .在 Django 模板中,循环遍历 foo ,有一个计数器跟踪当前的索引/迭代,计数器用于访问 bar .这里的问题是我认为 Django 模板系统不支持使用变量索引访问列表。这是真的吗?如果是这样,是否有解决此问题的方法(除了使用硬编码索引重复相同的 html/模板代码)?

代码演示:

{% for x in foo %}
<span>{{ x.name }} vs. {{ bar.{{ forloop.counter0 }}.name }}</span>
{% endfor %}

Django 模板不喜欢 {{ bar.{{ forloop.counter0 }}.name }}
注意:我使用的是 Django 1.4

最佳答案

是的,您无法解析变量名称。绝对非常努力地将这个逻辑放在 View 中。

但是在 5% 的情况下,我确实发现这在模板作者控制之外的 View /更改中需要太多逻辑有时会受到极大限制。我开始接受一些个人定制,允许在 View 中进行变量分配以及简单的变量分辨率。

构建一个这样做的模板标签非常简单,使用模板引擎“所有查找在一个”系统(索引、属性、键)。

from django.template import Variable, VariableDoesNotExist

@register.assignment_tag()
def resolve(lookup, target):
try:
return Variable(lookup).resolve(target)
except VariableDoesNotExist:
return None

{% resolve some_list some_index as value %}
{% resolve some_dict some_dict_key as value %}

关于django - 如何在 Django 模板中使用变量索引访问列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com