Как я могу создать запрос из списка, используя фильтры? - PullRequest
1 голос
/ 10 апреля 2019

Допустим, в какой-то базе данных у меня есть Люди , у которых есть эти атрибуты:

  • Имя
  • Возраст

Если бы я хотел получить всех людей, которых зовут Стюарт или Стив , я мог бы использовать объекты Q:

qs = People.objects.filter(Q(name='Stuart') | Q(name='Steve'))

Но что, если я получаю список n имен? Пример: ['Bob, 'John','Rachel', 'Some other names that i don't know'...]

Как я могу построить запрос с этими n неизвестными именами в списке?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2019

простое решение - использовать стандартный фильтр __ in =

name_list = ['Bob', 'John', 'Rachel']
qs = People.objects.filter(name<b>__in</b>=name_list)
2 голосов
/ 10 апреля 2019

Один из способов сделать это - qs = People.objects.filter(name__in=['list of names']), может быть и другой эффективный способ, я не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...