Python Django RestFramework:双向外键关系

Python Django RestFramework:双向外键关系,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,有两种模型:父模型和子模型 class Parent(models.Model): name = models.CharField(max_length=128) children = ? class Children(models.Model): name = models.CharField(max_length=128) parent = ? 如果我们需要子实例将父实例作为链接到模型父实例,我们可以在子实例中使用ForeignKey,反之亦然 如果父级A

有两种模型:父模型和子模型

class Parent(models.Model):
    name = models.CharField(max_length=128)
    children = ?

class Children(models.Model):
    name = models.CharField(max_length=128)
    parent = ?
如果我们需要子实例将父实例作为链接到模型父实例,我们可以在子实例中使用ForeignKey,反之亦然

如果父级A有子级B和C,我们希望A有子级B和C的id,子级B和C有父级A的id。 i、 e.A.children=B.id,C.id和B.parent=A.id,C.parent=A.id

我们如何才能做到这一点

parent = models.ForeignKey(Parent, related_name='children')

是否可以使用此选项?

是的,如果子实例只有一个父实例,则父模型的ForeignKey字段是正确的关系。您的示例在我看来很好,但约定是模型名称是单数而不是复数-class Childmodels。模型:而不是class Childrenmodels。模型:。

使用ForeignKey和相关名称,父实例A和子实例B是否都相互引用,即子实例的字段“Parent”和父实例的字段“children”?在数据库中,信息仅存储在子记录中。但是使用djangoapi,两个实例都有一个引用。父实例的字段将是一个使用ForeignKey字段的相关\u name属性命名的管理器,如果不命名,则为child\u set,因此您可以使用child\u set.all获取all或使用child\u set.filter进行进一步选择。。。等