1. ホーム
  2. パイソン

[解決済み] Djangoのquerysetでless than or equal toフィルタを行うにはどうすればよいですか?

2022-04-07 08:58:15

質問

各ユーザーのプロファイルにあるprofileというカスタムフィールドでユーザーをフィルタリングしようとしています。このフィールドはlevelと呼ばれ、0-3の間の整数です。

等号を使用してフィルタリングすると、期待どおりに選択したレベルのユーザーのリストが得られます。

user_list = User.objects.filter(userprofile__level = 0)

less than を使ってフィルタリングしようとすると。

user_list = User.objects.filter(userprofile__level < 3)

エラーが出ます。

グローバル名 'userprofile__level' が定義されていません。

あるいは、私は間違った木に吠えているのでしょうか。

どのように解決するのですか?

以下または等しい。

User.objects.filter(userprofile__level__lte=0)

よりも大きいか、または等しい。

User.objects.filter(userprofile__level__gte=0)

同じく。 lt は未満を、そして gt は大を意味します。これらをすべて見つけることができます をドキュメントに追加しました。 .