我的迁移来自另一个人的工作,我也在使用该版本控制的代码库。我在添加新字段后创建了一个迁移文件,但问题出在数据迁移(0003_datamigration_initial_service_configuration.py)之前,通过函数get_or_create()在列表的头部执行之前创建,而我的迁移文件数据最后我不应该改变已经开发的迁移。
这是我的迁移列表
0003_datamigration_initial_mymodel.py:
from __future__ import unicode_literals
from django.db import migrations
from ..models import MyModel
def create_initial_mymodel(apps, schema_editor):
current_product_type, created = MyModel.objects.get_or_create()
class Migration(migrations.Migration):
dependencies = [
('myapp', '0002_datamigration_initial_users_list'),
]
operations = [
migrations.RunPython(create_initial_mymodel),
]
Rhe错误为no such column named new_field
如何在不编辑任何数据迁移的情况下解决问题?
答案 0 :(得分:2)
您应该使用apps.get_model
获取MyModel
模型,而不是直接导入它。
def create_initial_mymodel_forward(apps, schema_editor):
MyModel = apps.get_model('myapp', 'MyModel')
current_product_type, created = MyModel.objects.get_or_create()
使用apps.get_model
将使用正确的字段加载模型的历史版本。