从Django中的超类模型中排除子类模型的数据



我有一些这样的模型:

class Super(models.Model):
attr1 = ...
attr2 = ...

class Child(Super):
child_attr1 = ...
child_attr2 = ...

现在,当我执行Child.objects.all()时,它只提供子对象。但是,当我执行Super.objects.all()时,它会给出所有的超对象和子对象。有没有像Super.objects.exclude(...)这样的查询集,我只能用它来获取超类模型的对象?

Super.objects.exclude(pk__in=Child.objects.all())

我使用它,但我不知道是否存在其他优化。

最新更新