1. ホーム
  2. python

[解決済み] django のクエリセットで OR 条件を実行する方法は?

2022-03-24 17:30:47

質問

この SQL クエリと同等の Django クエリを書きたいのです。

SELECT * from user where income >= 5000 or income is NULL.

Django のクエリセットフィルタを構築する方法は?

User.objects.filter(income__gte=5000, income=0)

これはうまくいきません。 AND はフィルターです。私は OR は、個々のクエリセットの結合を取得するためのフィルタです。

解決方法は?

from django.db.models import Q
User.objects.filter(Q(income__gte=5000) | Q(income__isnull=True))

ドキュメント経由