有没有一种方法可以只对一个超级类进行一次查询,然后获得django中所有相应子类的列表



可能重复:
Django模型继承查询中心表

以下是在此处找到的官方文档
https://docs.djangoproject.com/en/dev/topics/db/models/#multi-表继承

我看到我可以通过查询餐厅的超级餐厅

p = Place.objects.filter(name="Bob's Cafe")

那么,在这一点上,是否有一种方法可以检查并查看返回的对象是否也是子类Restaurant的类型,如果是,则访问它们的子类字段?

目前,我所能告诉的是,返回的所有对象都是Place类的,它们的子类属性和方法不可用,因为对象没有被转换为其子类。

如果这种方法不可行,那么在试图获得包含所有子类模型的列表时,尝试抽象一个超级类并最大限度地减少查询开销的最佳实践是什么?我知道理论上我可以对每个子类进行查询,然后将列表组合在一起,但如果我想通过日期来排序,我就必须做更多的工作。

那么,在这一点上,是否有一种方法可以检查并查看返回的对象是否也是子类Restaurant的类型,如果是,则访问它们的子类字段?

如果查询了Place模型,则返回的对象是不知道任何MTI关联子类的Place实例。您需要在超类上提供一个字段,以便向下链接到子类。请参阅Django 中的通用多表继承设计

相关内容

  • 没有找到相关文章

最新更新