有人可以告诉我反向关系是什么意思吗?我已经开始使用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 name或reverse relationship进来。
profile.group
group
related name
reverse relationship
Django默认情况下为你提供一个默认值related_name,即ModelName(小写),后跟_set-在这种情况下,它将为profile_set,so group.profile_set。
related_name
profile_set,so group.profile_set
但是,你可以通过related_name在ForeignKey字段中指定a来覆盖它。
ForeignKey
class Profile(models.Model): group = models.ForeignKey(Group, related_name='profiles') #more attributes
现在,你可以按以下方式访问外键:
group.profiles.all()