Django什么是反向关系?

有人可以告诉我反向关系是什么意思吗?我已经开始使用Django,并且在文档的很多地方都看到了“反向关系”。到底是什么意思?为什么有用?它与related_name有什么关系?

回答:

这是有关related_name的文档

假设你有2个模型

class Group(models.Model):

#some attributes

class Profile(models.Model):

group = models.ForeignKey(Group)

#more attributes

现在,你可以从配置文件对象执行操作profile.group。但是,如果要给配置文件对象指定group对象,该怎么做?多数民众赞成在哪里related namereverse relationship进来。

Django默认情况下为你提供一个默认值related_name,即ModelName(小写),后跟_set-在这种情况下,它将为profile_set,so group.profile_set

但是,你可以通过related_nameForeignKey字段中指定a来覆盖它。

class Profile(models.Model):

group = models.ForeignKey(Group, related_name='profiles')

#more attributes

现在,你可以按以下方式访问外键:

group.profiles.all()

以上是 Django什么是反向关系? 的全部内容, 来源链接: utcz.com/qa/422587.html

回到顶部