django在同一个模板中重复使用html块进行不同的for循环

时间:2013-05-02 08:52:09

标签: python html django django-templates

我对给定对象有三个条件, 1。开始 2。开始 3。完成。 我在视图中过滤对象并将三个变量发送到模板 - tostart_objectsstarted_objectsfinished_objects

现在我循环遍历html模板中的三个for循环,如下所示:

{% for obj in tostart_objects %}
// chunk of html template to display all the object 
{% endfor %}

{% for obj in started_objects %}
// similar chunk of html template as above
{% endfor %}

{% for obj in finished_objects %}
// similar chunk of html template as above
{% endfor %}

我可以不在三个不同的地方重用它们,而不是放入相同的代码块吗? 如何才能做到这一点?请让我知道,谢谢!

1 个答案:

答案 0 :(得分:4)

这样做的一种方法是将HTML块放在单独的模板文件中,并使用{% include %}将其包含在每个循环中。在此基础上,您可以将整个循环定义为包含对象列表作为参数的包含模板标记。

或者,您可以在视图中连接三个列表,然后循环遍历结果。