Python Django South使用--auto--update编辑模型中的字段名
在中,更改字段名称时,它希望您使用Python Django South使用--auto--update编辑模型中的字段名,python,django,django-models,django-south,Python,Django,Django Models,Django South,在中,更改字段名称时,它希望您使用/manage.py schemamigration southtut--auto--update。当我使用它时,我得到以下/manage.py:error:没有这样的选项:--update。此外,在检查可能的选项时,我可以使用的更新不在其中 给出的选项: --add field=--add model=--empty--help--pythonpath=--stdout--verbosity=--add index=--auto--freeze=--initi
/manage.py schemamigration southtut--auto--update
。当我使用它时,我得到以下/manage.py:error:没有这样的选项:--update
。此外,在检查可能的选项时,我可以使用的更新不在其中
给出的选项:
--add field=--add model=--empty--help--pythonpath=--stdout--verbosity=--add index=--auto--freeze=--initial--settings=--traceback
很简单,不需要--update。当您发出schemamigration-southtut--auto
时,它应该自动确认更改,并注意一个字段已经更改了名称,并执行它必须执行的操作
这对我很有效
此外,--update
所做的是更新最后一次迁移,而不是创建一个新的迁移,因此这可能不是您想要的。您想要的是更改模式
如果要重命名模型中的字段,可能需要创建一个迁移,用新名称添加新字段,然后创建一个数据迁移,将数据从旧字段(要更改名称的字段)添加到新字段(新名称的字段)然后创建第三次迁移以删除旧列
您可以在中搜索如何进行数据迁移
你也可以试试这个非常有趣的地方。这可能更简单
希望有帮助。我试过了,但我的列名没有因此而改变,我做错了什么吗?当你发出命令时,它说了什么?当它检测到没有任何变化时,南方会说:“没有变化”。如果没有,它将进行更改。命令的输出是什么?它说它删除了列(a)并创建了一个新的列(b),但当我去创建一个模型对象时,它说应该删除的列(a)不能为空?在我的回答中添加了一些关于字段重命名的更多信息。希望能有帮助。