4

Q のリストを渡して OR ルックアップをフィルタリングするにはどうすればよいですか? 何かのようなもの:

q_list = [Q(xyz__isnull=True), Q(x__startswith='x')]?

リストがなければ、次のようにします。

Model.objects.filter(Q(xyz__isnull=True) | Q(x__startswith='x'))
4

2 に答える 2

7

Qオブジェクトには、add別のQオブジェクトとQコネクタ(ANDまたはOR)を受け取るメソッドもあります。

q_object = Q(xyz__isnull=True)
q_object.add(Q(x__startswith='x'), Q.OR)

これはORフィルターを作成するときに役立つことがわかり、ブログにもっと長い例を書いています:DjangoでのQオブジェクトの「追加」

于 2009-10-02T15:50:08.563 に答える