我有一个带有外键的简单django模型
class FooModel(models.Model):
foo = models.ForeignKey('Foo', related_name="foo_choices")
bar = models.CharField(max_length=50)
related_name属性已经存在,但是我想更改它。此更改是否需要任何形式的迁移?当我在修改related_name之后运行schemamigration管理命令时,我得到“似乎什么都没有改变”,但我想验证。
否不需要迁移。
Related name是用于从相关对象到该对象的关系(反向关系)的名称。
related_name
与数据库无关。它由Django的ORM占用以获取查询集结果,因此,如果更改模型字段上的related_name
属性,则无需迁移。
关于additional documentation here的用法的一些related_name
上面接受的答案现在已经过时。
当外键字段的相关名称更改时,Django会创建并迁移alter field foreign_key_field on model
。