web-dev-qa-db-ja.com

Djangoクエリセットで以下のフィルターを実行する方法は?

Profileと呼ばれる各ユーザープロファイルのカスタムフィールドでユーザーをフィルターしようとしています。このフィールドはレベルと呼ばれ、0〜3の整数です。

Equalsを使用してフィルター処理すると、選択したレベルのユーザーのリストが期待どおりに取得されます。

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

以下を使用してフィルタリングしようとすると:

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

エラーが表示されます:

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

<または>でフィルタリングするためにそこにありますか、それとも間違ったツリーを探していますか。

129
Finglish

より小さいか等しい:

User.objects.filter(userprofile__level__lte=0)

より大きいか等しい:

User.objects.filter(userprofile__level__gte=0)

同様に、より小さい場合はlt、より大きい場合はgtです。それらはすべて見つけることができます ドキュメントで

257
Lakshman Prasad