Django запросы: как фильтровать объекты, чтобы исключить id, который находится в списке?


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

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

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 56

2 ответа:

MyObject.objects.filter(time__gte=datetime.now()).exclude(id__in=object_id_list)

вы также можете сделать это с помощью Q объекта:

from django.db.models import Q MyObject.objects.filter(time__gte=datetime.now()).filter(~Q(id__in=object_id_list))