【问题标题】:Django South: Adding a model field after a datamigrationDjango South:数据迁移后添加模型字段
【发布时间】:2012-05-19 11:45:09
【问题描述】:

每当我使用 Django South 创建一个 datamigration(但还没有运行它),然后创建一个 schemamigration 向该迁移所涉及的模型添加一个新字段时,manage.py migrate 任务在datamigration 上失败。

原因是models.py 文件的类定义包含datamigration 无法识别的新字段定义。

有什么办法可以防止这种情况发生吗?

【问题讨论】:

  • 有一种方法可以让迁移识别表中的新字段..
  • 是否要手动将新字段添加到数据迁移文件中的模型字典中?
  • 没有。在初始迁移之后,我曾经使用一系列命令进行迁移,因此可以识别表中的更改。
  • 很高兴知道这些是什么:)
  • 这就是答案。我希望它也适合你;)

标签: python django django-south


【解决方案1】:

在 South Datamigration 中,您应该直接引用您的模型。即

from myapp.models import MyModel # <- This is bad in datamigration
MyModel.objects.filter(...)

你必须使用 ORM 对象

orm.MyModel.objects.filter(...) <- This is good.

【讨论】:

  • 出色的答案。谢谢!
猜你喜欢
  • 2014-05-01
  • 1970-01-01
  • 2012-12-28
  • 2014-01-03
  • 1970-01-01
  • 2011-08-29
  • 2012-03-08
  • 2015-10-07
  • 2023-03-17
相关资源
最近更新 更多