我有一个模型Animal
和动物对象列表
A1 = [a1, a2, a3]
现在我正在制作Django查询
A2 = Animal.objects.filter(some__filters)
现在我想从A2中排除A1
A3 = A2.exclude(A1) // Wouldn't simply work.
我知道我必须做这样的事情
A3 = A2.exclude(id__in=[a.id for a in A1])
是否应该有更短的版本?
答案 0 :(得分:0)
将列表作为查询集检索:
a1 = Animal.objects.filter(pk__in=[a1.pk, a2.pk, a3.pk])
获取您的查询集:
a2 = Animal.objects.filter(some__filters)
获取查询集之间的区别:
a1.difference(a2)
此选项假定a1是一个查询集。
a1.difference(a2)
(https://docs.djangoproject.com/en/3.1/ref/models/querysets/#difference)