如何根据django中的“相关对象”属性对对象进行分组
我有这两个模型如何根据django中的“相关对象”属性对对象进行分组,django,group-by,Django,Group By,我有这两个模型 class Point(models.Model): point = models.IntegerField() description = models.CharField("Action", max_length=128) class PointLog(models.Model): user = models.ForeignKey('users.User', verbose_name ="Related User") poin
class Point(models.Model):
point = models.IntegerField()
description = models.CharField("Action", max_length=128)
class PointLog(models.Model):
user = models.ForeignKey('users.User', verbose_name ="Related User")
point = models.ForeignKey(Point)
date = models.DateTimeField(default = datetime.datetime.now())
点
对象是静态的。我的意思是它们不会动态变化,它显示了哪个动作会带来多少分数。和PointLog对象显示用户的操作。一个用户可以完成多个相同的操作
我想根据用户操作对PointLog
对象进行分组,并对每个不同操作的点进行求和
帮助:)
采样点对象
description point
-----------------------
make comment 5
add photo 20
add video 50
点日志对象示例
User point date
------------------------------
user1 make comment ....
user1 make comment ....
user1 add photo ....
user1 add photo ....
user1 add photo ....
user1 add photo ....
user1 add video ....
user1 add video ....
user1 add video ....
抽样结果
user1s action;
make comment 10 points gained
add photo 80 points gained
add video 150 points gained
使用以下命令:
result = PointLog.objects.all().values("user", 'point').annotate(num=Count("pk"))
PointLog.objects.all().values('user','point\u description')。注释(points\u获得=总和('point\u point'))请为point类添加一些数据。您确定点和点日志之间不需要多2多关系吗。动作定义在哪里?(评论2),(添加新的照片20),(添加新的视频50)第一个是描述第二个是点对不起,我不明白,请在你的帖子中(不仅仅在评论中)提供这两个点的数据,点,点日志,并描述分组和求和应该返回什么。对不起。PointLog类中有一个属性(int字段不是外键)显示受影响对象的id。我不能在不更改模型的情况下执行此操作吗?很抱歉,缺少解释。