检查成员值是否与上一次迭代中的值不同

时间:2015-05-04 12:00:34

标签: python django django-templates

我有QuerySet GroupMembership个按product__name订购的对象,该对象已作为group_memberships分配给我的模板; GroupMembership个对象包含productgroup字段,两者都具有name属性。在输出中,我想每次membership.product.name更改时呈现标题标记:

<h1>First Product</h1>
<p>One item</p>
<p>Another item</p>
<h1>Second Product</h1>
<p>First item in Second Product</p>

我最初的想法是在我存储最后一个产品名称时引入一个辅助变量,如果它与前一个产品名称不同(或为空),我会渲染<h1>行。但是,Django缺少{% assign %}标签。有没有办法在不引入自定义模板标签/上下文处理器的情况下执行此操作?或者我应该在我的视图中以某种方式进行分组,并为我的模板分配嵌套的dict?我不想为此事安装任何自定义应用程序。

1 个答案:

答案 0 :(得分:2)

使用here模板标记:

{% for membership in group_memberships %}

    {% ifchanged %}
        <h1>{{ membership.product.name }}</h1>
    {% endifchanged %}

    <p>{{ membership.group.name }}</p>

{% endif %}