Портирование и существующая иерархия вложенных множеств - PullRequest
0 голосов
/ 01 мая 2020

У меня есть таблица категорий вложенного набора, разработанная с помощью PHP ORM Doctrine, и я хотел бы перенести ее в приложение Django.

Я начал переносить ее на django -treebeard , но у меня возникли трудности, и я не уверен, что это может работать. Исходная таблица имела необходимые поля lft, rgt и глубина, поэтому я добавил поле tree_id.

У меня также был внешний ключ для учетных записей с одним деревом / учетной записью. Таким образом, таблица содержит несколько независимых деревьев, которые не находятся под общим root, причем столбцы lft и глубина начинаются с 1 для каждого дерева. Таким образом, в основном один вложенный набор для каждой учетной записи в таблице.

Я могу просто добавить узлы в дерево, но когда я вызываю метод get_last_child, я получаю узлы из других учетных записей.

Кто-нибудь знает, есть ли способ использовать treebeard, mptt или любой другой пакет без необходимости реструктуризации деревьев?

1 Ответ

0 голосов
/ 01 мая 2020

Я добился некоторого прогресса, добавив правильный tree_id в качестве порядкового номера по account_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;

Теперь пытаюсь заставить администратора работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...