如何在django模板中获取对象属性for循环

时间:2014-11-05 22:59:31

标签: django django-templates

你怎么能做Django模板等效于这个python for循环?

    extra_context = [o.extra_context for o in activities] 

或者我是否需要注册新的模板标签?

2 个答案:

答案 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 %}