你怎么能做Django模板等效于这个python for循环?
extra_context = [o.extra_context for o in activities]
或者我是否需要注册新的模板标签?
答案 0 :(得分:1)
如果你想创建一个新的列表变量来迭代,你需要访问模板的上下文 - 我认为你不能从模板本身做到这一点。据我所知,必须从视图中完成。 This question may provide more insight. The discussion of template tags found in the same thread is also relevant.
如果activities
是唯一通过请求上下文传递的内容,那么我相信在没有注册新标记的情况下,您可以在模板中做的最接近的事情是:
{% for o in activities %}
{{ o.extra_context }}
<!-- do stuff -- >
{% endfor %}
我会参考上面链接的线程来讨论制作一个可以使用新列表的标签等。
答案 1 :(得分:0)
环顾四周并阅读一些文档,这是我的方法
{% for a in activities %}
{% with a.extra_context as o %}
{% endwith %}
{% endfor %}