gpt4 book ai didi

python - 当我在 Django 中已有数据迁移时,如何在模型中添加新字段?

转载 作者:行者123 更新时间:2023-12-01 02:25:49 24 4
gpt4 key购买 nike

我的迁移来自另一个人的工作,并且我也处于由版本控制的代码库中。我在添加新字段后创建了一个迁移文件,但问题在于之前通过函数 get_or_create () 创建的数据迁移(0003_datamigration_initial_service_configuration.py)在列表的头部执行,而我的迁移文件数据在最后我不应更改已开发的迁移。

这是我的迁移列表

  • 0001_initial.py
  • 0002_datamigration_initial_users_list.py
  • 0003_datamigration_initial_mymodel.py
  • ...
  • 0015.addnewfield

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),
]

错误是没有名为 new_field 的此类列

如何在不编辑任何数据迁移的情况下解决问题?

最佳答案

您应该使用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 将加载具有正确字段的模型的历史版本。

关于python - 当我在 Django 中已有数据迁移时,如何在模型中添加新字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47412268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com