gpt4 book ai didi

python - Django 什么是反向关系?

转载 作者:IT老高 更新时间:2023-10-28 21:18:06 32 4
gpt4 key购买 nike

谁能告诉我反向关系是什么意思?我已经开始使用 Django,并且在文档中的很多地方我都看到了“反向关系”。它到底是什么意思?为什么有用?引用 this post 与相关名称有什么关系? ?

最佳答案

这是关于 related_name 的文档

假设您有 2 个模型

class Group(models.Model):
#some attributes

class Profile(models.Model):
group = models.ForeignKey(Group)
#more attributes

现在,您可以从配置文件对象执行 profile.group。但是,如果你想要给定 group 对象的配置文件对象,你会怎么做呢?这就是相关名称反向关系的来源。

Django,默认情况下会为您提供一个默认的 related_name,它是 ModelName(小写),后跟 _set - 在这种情况下,它将是 profile_set,所以 group.profile_set

但是,您可以通过在 ForeignKey 字段中指定 related_name 来覆盖它。

class Profile(models.Model):
group = models.ForeignKey(Group, related_name='profiles')
#more attributes

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

group.profiles.all()

关于python - Django 什么是反向关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17328910/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com