Django queries: how to filter objects to exclude id which is in a list?
DjangoListDjango Problem Overview
How can I filter in a query so the result excludes any object instances with ID belonging to a list?
Lets say I have:
object_id_list = [1, 5, 345]
MyObject.objects.filter(Q(time__gte=datetime.now()) & Q( ... what to put here? ... ))
Something in the style of "SELECT * FROM ... WHERE id NOT IN (...)"
Django Solutions
Solution 1 - Django
MyObject.objects.filter(time__gte=datetime.now()).exclude(id__in=object_id_list)
Solution 2 - Django
You can also do this using the Q
object:
from django.db.models import Q
MyObject.objects.filter(time__gte=datetime.now()).filter(~Q(id__in=object_id_list))