Django模板,如果类型添加到html id

时间:2015-08-14 09:48:03

标签: python django django-templates dry

模型gigi有一个typology属性,我想根据div属性的值将项添加到html typology标记中。如何在Djangos模板中设法执行此操作:

for gigi in object_list


<div id="typology1">
{%if gigi.typology == "typology1"> %}
   <div> {{gigi.name}}</div>
{% endif %}
</div>

<div id="typology2">
{%if gigi.typology == "typology2"> %}
   <div> {{gigi.name}}</div>
{% endif %}
</div>

这是唯一的方法吗?有没有更好的干(不要重复自己)方式?

1 个答案:

答案 0 :(得分:2)

您目前拥有的代码没有任何问题;但是,您可以进行以下小调整,并删除相当多的代码。

为什么不将gigi.typology字符串用作id

{% for gigi in object_list %}
<div id="{{ gigi.typology }}"> 
   <div> {{gigi.name}}</div>
</div>
{% endfor %}

如果你正在寻找具体的&#34;类型学的所有要素&#34;组合在一起然后你也可以使用regroup子句。

{% regoup object_list by typology as typolist %}
{% for typo in typolist %}
    <div id="{{ typo.grouper }}">
        {% for gigi in typo.list %}
        {{ gigi.name }}
        {% endfor %}
    </div>
{% endfor %}