我的应用程序有两种节点类型:父节点,它可以容纳递归子节点。可以把它想象成SO中的后评论系统,但评论可以是递归的:
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中建立这种关系的正确(并且可能是最有效的)方法是什么?
答案 0 :(得分:11)
答案 1 :(得分:1)
你能使用Generic Relation并只在save()方法中添加验证(或在信号或表格验证中),以确保对象是一个或另一个的实例吗?