2017-05-04 67 views
1

有没有办法说Django隐藏/删除(显示一个空格)的字段与前一行的值相同?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> 

文章 - 现在

一个 - 2017年1月1日

b -

Ç - 2017年1月2日

d -

这可能从查看或直接在模板

+0

我不知道那是什么黄色块是为了显示,但你几乎可以肯定要['{%ifchanged%}'](https://docs.djangoproject.com/ EN/1.11/REF /模板/建宏/#ifchanged)。 –

回答

1

您可以使用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值。

祝你好运:)