1

我有一个使用 PHP ORM 原则开发的嵌套集合类别表,我想将它移植到 Django 应用程序。

我开始将它移植到 django-treebeard,但我遇到了困难,我不确定它是否可以工作。原始表具有所需的字段 lft、rgt 和深度,因此我添加了 tree_id 字段。

我还有一个外键到一个树/帐户的帐户。因此,该表包含多个不在公共根下的独立树,每棵树的 lft 和 depth 列从 1 开始。所以基本上表中的每个帐户都有一个嵌套集。

我可以很好地将节点添加到树中,但是当我调用 get_last_child 方法时,我会从其他帐户获取节点。

有谁知道是否有一种方法可以使用 treebeard、mptt 或任何其他软件包而无需重组树?

4

1 回答 1

0

我通过按 account_id 添加正确的 tree_id 作为序列号取得了一些进展,这解决了一些问题,查询:

UPDATE category c,
(SELECT id, DENSE_RANK() OVER (ORDER BY account_id) AS  seq
FROM category ) tree_rank
SET c.tree_id = tree_rank.seq
WHERE c.id = tree_rank.id;

现在试图让管理员工作。

于 2020-04-30T23:47:23.033 回答