所以我有这个游戏应用程序,我将列出用户分数。我正在考虑使用的查询如下:
top_list = User.objects.filter().order_by('-score')[:10]
但这是在我向用户实施实际自定义字段“得分”之前。所以我查看了recomended方式,并执行了以下操作:
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
score = models.IntegerField(default=0);
让我意识到score
根本不会是用户中的一个字段(如果我理解的话)?用户将与UserProfile建立一对一的关系,从而保持分数。那么如何根据降序排列的前十名用户列表呢?
答案 0 :(得分:4)
User.objects.all().order_by('-userprofile__score')[:10]
使用__
检查django doc for explanation关于字段查找的内容。
答案 1 :(得分:1)
您可以按相关字段(docs)订购:
top_list = User.objects.filter().order_by('-userprofile__score')[:10]