django模型:有递归关系

时间:2013-08-03 10:25:40

标签: django-models

如何正确建模递归关系,如下图所示?

class A(models.Model):
    previous_A = models.OneToOneField(A)

1 个答案:

答案 0 :(得分:3)

使用Django,您可以按如下方式建模父子关系:

class Person(models.Model):
    name = models.CharField(max_length=128)
    parent = models.ForeignKey('self', null=True, related_name='children')

引用ForeignKey docs

  

创建递归关系 - 具有多对一的对象   与自身的关系 - 使用models.ForeignKey('self')

P.S。通过“反身关系”,我假设你指的是一个递归关联,它将单个类型(在一个角色中服务)与自身(在另一个角色中服务)联系起来;即亲子关系。