Django queries: how to filter objects to exclude id which is in a list?

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 (...)"

112543 次浏览
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))