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 родительского узла в виде большого целочисленного поля?
Есть ли способ автоматизировать интерфейс администратора, чтобы показать нужные формы для системы (стандартные поля, а затем дерево для дерева системы)?
Заранее спасибо!!!