Корректный способ смоделировать рекурсивные отношения в Django

Мое приложение имеет два типов узлов: родительский узел, который может содержать рекурсивные дочерние узлы. Думайте о нем как система посткомментария в Так, но комментарии могут быть рекурсивными:

parent_1
  child_11
  child_12
    child_121
  child_13
parent_2
  child_21
    child_211
      child_2111

Важный, чтобы отметить, что родительские узлы имеют различные атрибуты и поведение, чем дочерние узлы.

Запрет рекурсии у меня были бы следующие модели:

class Parent(models.Model):
    # fields ...

class Child(models.Model):
    parent = models.ForeignKey(Parent)
    # other fields ...

Но рекурсия усложняет это. Каково корректное (и по-видимому самый эффективный) способ смоделировать эти отношения в Django?

5
задан Yuval Adam 20 March 2010 в 14:13
поделиться

2 ответа

с помощью django-mptt или django-treebeard .

11
ответ дан 13 December 2019 в 05:33
поделиться

Не могли бы вы использовать Generic Relation и просто добавить проверку в методе save () (или в сигнал или проверку формы) к убедиться, что объект является экземпляром одного или другого?

1
ответ дан 13 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: