【发布时间】:2021-01-06 11:15:00
【问题描述】:
Django : 过滤类别时使用 annotate() 和 values() 计数错误,重复错误,因为我使用下面的计数函数过滤类别,但它分别显示会计两次。
queryset = Blogpost \
.objects \
.values('categories__title') \
.annotate(Count('categories__title'))
return queryset
> My function in template
{% for cat in category_count %}
<div class="item d-flex justify-content-between">
<a href="#">{{ cat.categories__title }}</a><span>{{ cat.categories__title__count }}</span>
</div>
{% endfor %}
【问题讨论】:
-
分享您的
BlogPost和Category模型。 -
@WillemVanOnsem
class Category(models.Model): title = models.CharField(max_length=15) -
class Blogpost(models.Model): post_id = models.AutoField(primary_key= True) title = models.CharField(max_length=50) slug = models.SlugField(max_length=50) author = models.ForeignKey(Author, on_delete=models.CASCADE) thumbnail = models.ImageField(upload_to='shop/images', default="") publish = models.DateTimeField(default=timezone.now) categories = models.ManyToManyField(Category) status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft') objects = models.Manager() featured = models.BooleanField()
标签: django