所以我有两个模型...
parent 和 child 。
子级扩展父级。
当我这样做
Parent.objects.all(),我得到了 parent 和 child 。
我只想要 parent
是否有一个 Parent.objects.filter() 参数我可以用来只获取父对象而不是扩展父对象的对象?
请您参考如下方法:
我找到了一个更好的方法来解决这个问题,使用 django ORM 并且不需要对您的模型(例如 ABC)进行任何更改:
class Parent(models.Model): field1 = models.IntegerField() field2 = models.IntegerField() class Child(Parent): field3 = models.IntegerField() #Return all Parent objects that aren't also Child objects: Parent.objects.filter(child=None)
这将导致以下查询(概念上的,实际查询可能会有所不同):
SELECT "ap_parent"."field1","ap_parent"."field2" FROM "ap_parent" INNER JOIN "ap_child" ON ("parent"."parent_ptr_id" = "ap_child"."parent_ptr_id") WHERE "ap_child"."parent_ptr_id" IS NULL
