私はDjangoのデフォルトのUserモデルを参照するプロファイルモデルを持っています。私はポイントが増加しているユーザーのリストが必要です。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モデルは、ユーザ名を与えている、見ています私が望むのと同じ順序で、しかしユーザーモデルはその順序を維持していません。プロフィールの返品と同じ注文を維持する方法
'キーワード 'profile_set'をフィールドに解決できません。選択肢は次のとおりです:回答、日付、姓、電子メール、名前、グループ、ID、is_active、is_staff、last_login、last_name、ログオン、パスワード、投稿、プロフィール、質問、ユーザー権限、ユーザー名、表示、投票 ' –
@BaqirKhan 'profile__points'で試してください。更新された私の答え –
私に簡単な説明を教えてもらえますか?私はあなたの答えを受け入れた。ありがとう –