Я пытаюсь использовать функцию аннотации в 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". Google и документы Django мне здесь не помогают. Кто-нибудь имел и решил эту проблему?