Django如何从视图中干掉代码

时间:2014-05-21 21:52:40

标签: django django-templates

我刚开始在Django编码,我的代码在很多页面上重复。

例如:

<select name="seasons" id="season-id">
    {% for season in seasons %}
        {% if season_id|add:0 == season.id %}
            <option value="{{ season.id }}" selected="selected">{{ season.name }}</option>
        {% else %}
            <option value="{{ season.id }}">{{ season.name }}</option>
        {% endif %}
    {% endfor %}
</select>

在以前的语言中,我可以使用视图帮助器使其更干。我怎样才能在Django中实现这一目标。

3 个答案:

答案 0 :(得分:2)

将代码解压缩到单独的模板文件中,然后include将其解压缩而不是重复:

{% include "seasons.html" %}

仅供参考,您还可以指定只想将seasons变量传递到包含模板的上下文中:

{% include "seasons.html" with seasons=seasons only %}

答案 1 :(得分:1)

取决于重复的内容。

  1. 您可以嵌套模板。可能在这里没用。
  2. 您可以编写自己的模板标签和模板过滤器。 further info

答案 2 :(得分:0)

你根本不应该写这个模板代码。你应该定义一个Django表单并输出该字段。