Django mptt: модель с экземпляром дерева mptt в качестве поля

Я разрабатываю приложение на Django, где мне нужно моделировать системы.

Система определяется рядом стандартных полей (имя, владелец и т.д...), а затем деревом активов (реализованным с помощью mptt). Данный актив может быть частью нескольких систем. Узел в дереве активов может указывать только на данный актив.

Итак, у меня есть модель для представления активов (упрощенная):

class Asset(models.Model):
    name = models.CharField(verbose_name = 'name', max_length = 64, unique = True, blank = False, null = False)

У меня есть класс для представления системных деревьев (упрощенно):

class System_Tree(MPTTModel):
    parent = TreeForeignKey('self',verbose_name = 'parent', on_delete = models.CASCADE, blank = True, null = True, related_name = 'children')
    asset = models.ForeignKey(Asset, verbose_name = 'asset', on_delete = models.CASCADE, blank = False, null = False)

У меня есть класс для представления системы (упрощенно):

class System(models.Model):
    name = models.CharField(verbose_name = 'name', max_length = 64, unique = True, blank = False, null = False)

Я хотел бы показать в шаблоне систему с ее полями и ее конкретное дерево системы, но я не знаю, как связать конкретный экземпляр дерева системы (возможно, идентифицированный корневым узлом (parent = null)) с моделью System.

Нужно ли мне определить новый тип поля, представляющий системные деревья?

Нужно ли хранить только ссылку на id родительского узла в виде большого целочисленного поля?

Есть ли способ автоматизировать интерфейс администратора, чтобы показать нужные формы для системы (стандартные поля, а затем дерево для дерева системы)?

Заранее спасибо!!!

Вернуться на верх