更改Django模型的related_name属性是否需要向南迁移?

问题描述 投票:14回答:2

我有一个带有外键的简单django模型

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

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

django django-models django-south
2个回答
14
投票

不需要迁移。

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

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

关于additional documentation here的用法的一些related_name


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.