在User的所有帖子中获得所有喜欢

时间:2018-02-05 08:16:17

标签: django django-models django-queryset

这是我的models.py

class Subject(models.Model):
    title=models.CharField(max_length=150)
    slug=AutoSlugField(populate_from='title',unique=True)
    body=models.TextField(max_length=5000, blank=True, null=True)
    author=models.ForeignKey(User, related_name='posted_subjects')
    created=models.DateTimeField(default=timezone.now)
    active=models.BooleanField(default=True)
    points=models.ManyToManyField(settings.AUTH_USER_MODEL,
                              related_name='liked_subjects',
                              blank=True)

如何获取特定用户发布的主题的所有要点?我的意思是,如果用户"马克"已经发布了30个科目,我如何得到这30个科目中所有积分的总和?

1 个答案:

答案 0 :(得分:2)

您可以使用aggregation

from django.db.models import Count
data = Subject.filter(author__username='Mark').aggregate(points_count=Count('points'))
points_count = data['points_count']