一、任务
- 统计右侧边栏的分类、标签云下的文章数目
二、过程
2.1 自定义模板标签中导入
from django.db.models.aggregates import Count
2.2 使用 annotate 统计
category_list = Post.objects.annotate(num_posts=Count('post')).filter(num_posts__gt=0)
tag_list = Post.annotate(num_posts=Count('post')).filter(num_posts__gt=0)
2.3 在标签的模板中使用属性 num_posts 显示数量
<a href="{% url 'blog:category' category.id %}">{{ category.name }} <span class="post-count">({{ category.num_posts }})</span></a>
<a href="{% url 'blog:tag' tag.pk %}">{{ tag.name }} <span class="post-count">({{ tag.num_posts }})</span></a>
三、问题
- 有没有办法统计归档的文章数目
- 统计的属性是不是如果不是post的话,就改名称了,比如num_users
附上 Gitee 地址:https://gitee.com/langxing/HelloDjango-blog-tutorial