Какой модуль для управления узлами в нескольких деревах? - PullRequest
1 голос
/ 18 февраля 2020

Я создаю веб-инструмент для управления ведомостями материалов (BOM). Мне удалось получить хорошую презентацию спецификаций, используя django с js-tree, но теперь я хотел бы поместить все это в базу данных. Мои деревья выглядят так:

- Root Part (ie Product A)
  - PartA - Qty: 1
    - PartB - Qty: 1
  - PartC - Qty: 1
    - Part D - Qty: 4
    - Part E - Qty: 1
      - Part F - Qty: 2
...

Проблема в том, что одна и та же деталь может присутствовать в разных продуктах или в разных сборочных узлах (например, винт для винта).

Я бы хотелось бы иметь возможность повторно использовать существующий узел (и его дочерние элементы) в другом дереве (например, у меня может быть Продукт B , который также включает Часть E (и, таким образом, Часть F )). Если я обновляю узел (ie Часть E ), изменение должно появиться во всех деревьях, где оно используется.

django-mptt кажется хорошим кандидатом, но, к сожалению, узел может только есть один родитель Существует TreeManyToManyField, но ничего в документации об этом нет, я не уверен, что это могло бы мне помочь.

Я мог бы создать Part как обычную модель и иметь вторую модель Bom Structure для создайте деревья, каждый экземпляр ссылаясь на Part, но я не вижу, как он будет удерживать потомков части.

Как люди обычно решают эту проблему?

...