我有一个配置文件模型,它引用了Django的默认用户模型。我想要一个增加点数的用户列表。Django在外部查询中维护内部查询的顺序?
我的个人资料型号:
class Profile(models.Model):
username = models.ForeignKey(User, on_delete=None, primary_key=True)
image = models.CharField(max_length=255, default="")
points = models.IntegerField(default=0)
views = models.IntegerField(default=0)
def __str__(self):
return self.username.username
我射击这个查询:
users = User.objects.filter(username__in=Profile.objects.filter().order_by('-points').values('username__username'))
print(users,Profile.objects.filter().order_by('-points').values_list('username__username'))
而且我的输出是
<QuerySet [<User: aplha>, <User: baqir>, <User: beta>]> <QuerySet [{'username__username': 'beta'}, {'username__username': 'baqir'}, {'username__username': 'aplha'}]>
现在,在这里我们看到,剖面模型是给用户名以我想要的顺序排列,但用户模型不保持该顺序。如何使其保持与配置文件返回相同的顺序。
'无法将关键字'profile_set'解析到字段中。选择是:答案,通过,date_joined,电子邮件,名字,组,身份证,is_active,is_staff,is_superuser,last_login,last_name,logentry,在,密码,发布,配置文件,问题,用户权限,用户名,查看,投票' –
@BaqirKhan尝试'profile__points'。更新了我的回答 –
你能给我一个简短的解释吗?我接受了你的答案。谢谢 –