Django:如何排除其他模型关系中的实例?

时间:2016-11-15 13:47:48

标签: python django django-models

我有两种模式:

Model A:
    field1

Model B:
    a_list = ManyToManyField(A)

现在,我想找到A不在B的a_list列表中,例如:

A.objects.exclude(self__in=b.a_list)

我该怎么做?

2 个答案:

答案 0 :(得分:4)

这些方面应该有效:

A.objects.all().exclude(pk__in=b.a_list)

答案 1 :(得分:0)

外键是单个实例,因此您也可以尝试以下解决方案

如果b是Model B单个实例

A.objects.exclude(id=b.a_list.id)

如果b是

b = B.objects.all()
A.objects.exclude(id__in=[i.a_list.id for i in b])