我正在开发一个信誉应用程序,并尝试让用户按信誉点数排序。我有一个标准的用户表和相对AuthUserKarma表来存储累计的点数。你知道吗
class AuthUserKarma(models.Model):
user_ref = models.ForeignKey(User, db_column='user_ref', blank=True, null=True,related_name="karma")
points = models.IntegerField(blank=True, null=True)
forwhat = models.CharField(max_length=255)
module_ref = models.ForeignKey('Modules', db_column='module_ref')
datetime = models.DateTimeField(auto_now_add=True)
要获得用户的累计积分总和,我使用用户模型过程:
def points(self):
from django.db.models import Sum
return self.karma.aggregate(Sum('points'))['points__sum'] or '0'
我怎样才能得到一个查询集或一个用户是按他们的分数排序的dict?你知道吗
您可以注释
User
对象以包含点的总和,然后使用以下信息进行排序:这样做的另一个好处是在单个数据库查询中检索所有用户的总和。你知道吗
相关问题 更多 >
编程相关推荐