如果我有两个模型:
Model_1.objects.all() Model_2.objects.all()
Model_1包含所有元素,Model_2包含这些元素的一部分。如何找到包含在Model_1中但不包含在Model_2中的元素?我试探着:
Model_1.objects.exclude(pk=Model_2.objects.order_by('pk'))
它不工作。
nkoocmlb1#
通常,2个模型代表两个不同的实体。但是如果您想根据Model_2的某些属性筛选Model_1,请根据您的要求使用exclude和filter。模型_1.对象.排除(id__in=模型_2.对象.全部())模型_1.对象.过滤器(id__in=模型_2.对象.全部())
w80xi6nr2#
您可以使用**in[Django doc.]**,例如:
in[Django doc.]
Model_1.objects.exclude(pk__in=[obj.pk for obj in Model_2.objects.all()])
2条答案
按热度按时间nkoocmlb1#
通常,2个模型代表两个不同的实体。但是如果您想根据Model_2的某些属性筛选Model_1,请根据您的要求使用exclude和filter。
模型_1.对象.排除(id__in=模型_2.对象.全部())模型_1.对象.过滤器(id__in=模型_2.对象.全部())
w80xi6nr2#
您可以使用**
in[Django doc.]
**,例如: