【发布时间】:2020-08-15 09:33:39
【问题描述】:
我有一个使用 PHP ORM 原则开发的嵌套集合类别表,我想将它移植到 Django 应用程序。
我开始将它移植到 django-treebeard,但我遇到了困难,我不确定它是否可以工作。 原表有需要的字段lft、rgt和depth,所以我添加了tree_id字段。
我还有一个外键到一个树/帐户的帐户。因此,该表包含多个不在公共根下的独立树,每棵树的 lft 和 depth 列从 1 开始。所以基本上表中的每个帐户都有一个嵌套集。
我可以将节点添加到树中,但是当我调用 get_last_child 方法时,我会从其他帐户获取节点。
有谁知道是否有一种方法可以使用 treebeard、mptt 或任何其他软件包而无需重新构建树?
【问题讨论】:
-
Q1:您是否使用现有的数据库架构并使用
manage.py inspectdb创建 Django 模型? -
Q2:您的类别表的当前树表示是否包含对父节点的引用?然后可以使用 django-treebeard “修复”嵌套的集合树。
-
对 q1 是的。我还必须创建并填充 tree_id 字段。
-
Q2:嵌套集没问题,实际上在mptt的实验中,我从嵌套集中重新创建了一个parent_Id字段。整个树集显示正常,我只是很难让管理员根据模型中的 account_id 在每个帐户上过滤到一个根。
标签: django hierarchical-data django-mptt django-treebeard