【发布时间】:2021-05-20 10:56:21
【问题描述】:
我想对每个 post_user 的所有帖子的 post_value 求和,以最终在图表中使用。我正在为如何制定查询而苦恼?
到目前为止,我必须:
user_totals = User.objects.annotate(post_value_total=Sum('post'))
models.py
class User(AbstractUser):
pass
class Post(models.Model):
post_user = models.ForeignKey(User, on_delete=models.CASCADE)
post_cat = models.ForeignKey(Category, on_delete=models.CASCADE)
post_action = models.ForeignKey(Action, on_delete=models.CASCADE)
post_quantity = models.PositiveIntegerField(blank=True, null=True)
post_value = models.PositiveIntegerField(default='0')
post_timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.post_user}'s post at {self.post_timestamp}"
谢谢。
【问题讨论】:
-
所以你想要
Posts 的总数?由于每个Post都有一个指向post_user的非NULL 字段,因此所有用户的Posts 总数就是Posts 的总数。
标签: django-models django-annotate django-aggregation