【发布时间】:2021-01-30 09:35:33
【问题描述】:
下午好,
我真的很难在 DJango 中使用 Annotate 来获得总和。
我正在使用用户对象和以下模型:
class Depts(models.Model):
dept_name = models.CharField(max_length=55)
dept_description = models.CharField(max_length=255)
isBranch = models.BooleanField(default=False)
def __str__(self):
return "{}".format(self.dept_name)
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='profile')
title = models.CharField(max_length=75)
dept = models.ForeignKey(Depts, on_delete=models.CASCADE, related_name="dept", null=True)
class ActivityLog(models.Model):
activity_datetime = models.DateTimeField(default=timezone.now)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, related_name='activity_user')
activity_category = models.ForeignKey(ActivityCategory, on_delete=models.CASCADE, null=True, related_name='activity_cat')
activity_description = models.CharField(max_length=100, default="Misc Activity")
class ActivityCategory(models.Model):
activity_name = models.CharField(max_length=40)
activity_description = models.CharField(max_length=150)
pts = models.IntegerField()
def __str__(self):
return '%s' % (self.activity_name)
我需要做的是让一组部门汇总所有用户活动日志所获得的积分总和。
因此,用户是部门的一部分,他们进行活动,每个活动都属于活动类别,并具有关联的积分。如何使用 ORM 查询得到每个部门每个人的总分?
谢谢你,我似乎无法理解它。
【问题讨论】:
标签: django django-models django-rest-framework django-orm