Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django South使用--auto--update编辑模型中的字段名_Python_Django_Django Models_Django South - Fatal编程技术网

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)不能为空?在我的回答中添加了一些关于字段重命名的更多信息。希望能有帮助。