17

我有一个带有 ForeignKey 的简单 django 模型

class FooModel(models.Model):
    foo = models.ForeignKey('Foo', related_name="foo_choices")
    bar = models.CharField(max_length=50)

related_name 属性已经存在,但我想更改它。这种变化是否需要任何形式的迁移?当我在修改 related_name 后运行 schemamigration 管理命令时,我得到“似乎没有任何变化”,但我想验证一下。

4

2 回答 2

17

您不需要迁移。

相关名称是用于从相关对象到此对象的关系(反向关系)的名称。

related_name与数据库无关。Django 的 ORM 使用它来获取查询集结果,因此如果您更改related_name模型字段的属性,则不需要迁移。

这里有一些关于使用的附加文档related_name

于 2013-11-06T15:09:25.923 回答
6

上面接受的答案现在已经过时了。

alter field foreign_key_field on model当外键字段的相关名称更改时,Django 会创建和迁移。

于 2019-12-27T08:15:57.733 回答