我正在尝试使用 Django 的注释功能将相关模型的计数添加到查询集中。但是,我不想要相关对象的完整计数,我只想计算活动对象(即“is_active=True”)。我不知道如何过滤计数。
(简化的)相关模型:
class Post(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=80)
body = models.TextField()
class Comment(models.Model):
user = models.ForeignKey(User)
post = models.ForeignKey(Post)
comment_body = models.CharField(max_length=80)
is_active = models.BooleanField(default=True)
在一个视图中,我试图注释一个查询集:
queryset=Post.objects.all().annotate(num_comments=Count('comment', distinct=True))
以上计算了与帖子相关的所有评论,而我只想计算“is_active”的评论。谷歌和 Django 文档在这里没有帮助我。有没有人遇到过并解决了这个问题?