Поддерживает ли Django ORM оператор SQL IN? Что-то вроде:
IN
SELECT * FROM user WHERE id IN (1, 5, 34, 567, 229)
Как мне использовать Django ORM для выполнения такого запроса?
Спасибо.
User.objects.filter(id__in=[1, 5, 34, 567, 229]) print _.query SELECT <fields> FROM "auth_user" WHERE "auth_user"."id" IN (1, 5, 34, 567, 229)
Кроме того, Django ORM также поддерживает подзапрос:
Например:
from django.db.models import Subquery users = User.objects.all() UserParent.objects.filter(user_id__in=Subquery(users.values('id')))
как указывает Юджи выше__in = [] переводится на следующий SQL:
ГДЕВ ()
полный список операторов SQL WHERE django можно найти в разделе Поиск полей следующего документа API Django.
https://docs.djangoproject.com/en/1.9/ref/models/querysets/