有没有办法说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 -
是否可以从查看或直接在模板中进行?
答案 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
和的值,仅当该值发生更改时才会显示。