Django模板如何删除重复值?

时间:2017-05-04 14:34:02

标签: python django django-templates

有没有办法说Django为与前一行具有相同值的字段隐藏/删除(显示空格)?

即:如果现在对于不同的人来说是相同的那么文章只能在小组的第一个中显示吗?

from django.views.generic.list import ListView
from django.utils import timezone

from articles.models import Article

class ArticleListView(ListView):

    model = Article

    def get_context_data(self, **kwargs):
        context = super(ArticleListView, self).get_context_data(**kwargs)
        context['now'] = timezone.now()
        return context


<h1>Articles</h1>
<ul>
{% for article in object_list %}
    <li>{{ article.pub_date|date }} - {{ article.headline }}</li>
{% empty %}
    <li>No articles yet.</li>
{% endfor %}
</ul>
  

文章 - 现在

     

a - 2017-01-01

     

b -

     

c - 2017-01-02

     

d -

是否可以从查看或直接在模板中进行?

1 个答案:

答案 0 :(得分:2)

您可以使用ifchanged

  

检查一个值是否从循环的最后一次迭代中发生了变化。

如下:

<h1>Articles</h1>
<ul>
{% for article in object_list %}
    <li>{{ article.headline }} - {% ifchanged article.pub_date|date %} 
        {{ article.pub_date|date }} {% endifchanged %}
   </li>
{% empty %}
    <li>No articles yet.</li>
{% endfor %}
</ul>

这将在每次迭代中检查article.pub_date的值,仅当该值发生更改时才会显示。

祝你好运:)