2017-05-04 99 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值。

祝你好運:)