模型改变Django,Mezzanine,South

时间:2014-04-04 14:45:31

标签: python django django-south mezzanine

我的模特是

class Author(Page):
    dob = models.DateField("Date of birth")

我删除了dob字段并更新了模型:

class Author(Page):
    name = models.CharField(max_length = 250)
    email = models.EmailField()

然后输入两个命令:

python manage.py schemamigration project_name 001_initial--add-field Author.name, Author.email 

然后这个命令

python manage.py migrate project_name

您可以看到附加图片:上述命令不允许我保存模型中的更改。

enter image description here

需要你的协助!

1 个答案:

答案 0 :(得分:0)

<强> SOLUTION:

1)在添加新字段之前,请转到命令提示符并移至项目或应用程序所在的目录。现在在models.py文件python manage.py schemamigration your_project_or_app_name --initial

中添加字段之前编写此命令

2)现在编写此命令python manage.py migrate your_project_or_app_name --fake 0001 (或者它返回的迁移号 - 0001是迁移号)将南数据库设置为该状态(已创建的表)。 / p>

3)现在转到models.py文件,在models.py文件中添加新字段,然后在cmd中运行此命令python manage schemamigration your_project_or_app_name --auto

4)保存更改的最后一步是运行最后一次迁移命令python manage.py migrate your_project_or_app_name

解决方案参考:Django & South: Adding new field but DatabaseError occurs "table already exists" Yuji 'Tomita' Tomita