我的模型是这样的:
class User(AbstractUser):
...
class UserPoints(models.Model):
user = models.ForeignKey(User, relative_name='points')
earned_points= models.IntegerField()
reward_month = models.IntegerField(default=0)
reward_year = models.IntegerField(default=0)
每个月都会创建UserRewards
。我使用Q生成查询
我想做的是列出前10名用户,按照earned_points
的总和排列。UserRewards
将被筛选为只包含最近三个月的值。我知道如何单独执行过滤、聚合、注释和求和。但是在单个查询或组合两个查询中,我似乎无法准确地理解它,特别是当每个用户有多个UserRewards
时
我已将您的模型固定为具有
on_delete
属性,并将relative_name
更正为related_name
如下所示:然后我添加了一些测试数据:
现在我们可以从
User
开始对UserPoints
进行求和和和排序,如下所示:这将产生:
相关问题 更多 >
编程相关推荐