作为我正在从事的项目的一部分,我正在尝试构建来自不同类型的对象的分层数据结构。
我使用django-mptt
它,它承诺通过快速查询以智能方式处理树。
问题是,我有多个模型需要参与这个数据树,所以我使用通用关系来存储所需的数据。
我构建的模型片段:
class CPNode(MPTTModel):
content_type = models.ForeignKey(ContentType, null=True, blank=True)
object_id = models.PositiveIntegerField(null=True)
content_object = GenericForeignKey('content_type', 'object_id')
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
...
这给了我我想要的,除了查询问题。
我认为查询所有数据将花费多个查询(每次我想获取 content_object 本身)。
有谁知道我如何维护这种结构,同时能够在可扩展的查询中获取所有数据?