Мое приложение имеет два типов узлов: родительский узел, который может содержать рекурсивные дочерние узлы. Думайте о нем как система посткомментария в Так, но комментарии могут быть рекурсивными:
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?
Не могли бы вы использовать Generic Relation и просто добавить проверку в методе save () (или в сигнал или проверку формы) к убедиться, что объект является экземпляром одного или другого?