Как использовать filter () для фильтрации одного и того же поля по двум разным значениям в Django ORM? - PullRequest
2 голосов
/ 13 января 2012

У меня есть модель (1), в которой есть поле, указывающее на другую модель (2). У меня есть список значений из модели (2), и я хотел бы отфильтровать объекты в модели (1) по всем из них.

В основном я хочу сделать это:

SomeModel.objects.filter(field1=x OR field1=y OR field1=z)

Возможно ли это, не могу найти ничего в документах.

Ответы [ 2 ]

9 голосов
/ 13 января 2012

Если вы хотите «ИЛИ» их вместе, объекты Q должны помочь вам достичь этого:

from django.db.models import Q
Samplemodel.objects.filter(Q(field1='x') | Q(field1='y'))

Ссылка ссылки: http://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

1 голос
/ 20 июня 2017

Вы можете сделать это, используя field1__in=['x', 'y']

Samplemodel.objects.filter(field1__in=['x', 'y'])
...