Здравствуйте! Помогите пожалуйста разобраться.
Есть две модели данных:
Document,
DocumentClosure. В БД создаются две таблицы с архитектурой «Closure Table».
ВОПРОС: Как отобразить в шаблоне древовидную структуру на основе этих моделей данных? Нужно ведь создать некую рекурсивность в шаблоне я так полагаю и для этого вроде нужно создать кастомный тег? Можете ли помочь разобраться, не могу все в голове уложить.
models.py:class Document(models.Model):
name = models.TextField(verbose_name='Название', blank=True, null=True)
class DocumentClosure(models.Model):
parent = models.ForeignKey(
Document,
on_delete=models.CASCADE,
related_name="parents",
related_query_name="parent",
db_column='parent_id',
blank=True,
null=True
)
child = models.ForeignKey(
Document,
on_delete=models.CASCADE,
related_name="childs",
related_query_name="child",
db_column='child_id',
blank=True,
null=True
)
level = models.IntegerField(
verbose_name='Уровень вложенности',
default=0,
blank=True,
null=True
)
P.S. Знаю, что есть временем проверенное приложение
django-mptt
, но в этом приложении используется
«Nested Sets»
. Не буду вдаваться во все подробности, но для моих конкретных нужд меня интересует именно архитектура
«Closure Table»
. Поэтому прощу django-mptt не предлагать.