Запросы Django: как отфильтровать объекты, чтобы исключить идентификатор из списка? - PullRequest
69 голосов
/ 01 марта 2010

Как я могу отфильтровать запрос, чтобы результат исключал любые экземпляры объектов с идентификатором, принадлежащим списку?

Допустим, у меня есть:

object_id_list = [1, 5, 345]

MyObject.objects.filter(Q(time__gte=datetime.now()) & Q( ... what to put here? ... ))

Что-то в стиле "SELECT * FROM ... WHERE id NOT IN (...)"

Ответы [ 2 ]

138 голосов
/ 01 марта 2010
MyObject.objects.filter(time__gte=datetime.now()).exclude(id__in=object_id_list)
8 голосов
/ 22 февраля 2017

Вы также можете сделать это, используя объект Q:

from django.db.models import Q

MyObject.objects.filter(time__gte=datetime.now()).filter(~Q(id__in=object_id_list))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...