我有一個配置文件模型,它引用了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'。更新了我的回答 –
你能給我一個簡短的解釋嗎?我接受了你的答案。謝謝 –