我有一个新的 django 项目,之前没有迁移,因此我想创建我的第一个迁移,将一些行插入到表中。这就是我所拥有的:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
def create_types(apps, schema_editor):
Type = apps.get_model("core", "Type")
type = Type()
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.RunPython(create_types)
]
我有一个应用程序核心,它有一个名为 Type 的模型,我想创建几个类型并为它们设置属性,并将它们全部保存到数据库中。这里如何新建一个Type模型的对象呢? 还有其他问题,如果这是第一个迁移器,我可以将依赖项留空吗?我用本教程创建的文件 https://docs.djangoproject.com/en/1.8/topics/migrations/#data-migrations将其命名为 0001_initial.py
编辑:已解决,创建这样的模型有效,我的监督。
Type = apps.get_model("core", "Type")
type = Type()
type.prop = '..'
type.save()
最佳答案
我遵循的模式是从初始迁移开始:
> python manage.py makemigrations
这会创建迁移以构建您的表。
接下来,我为数据创建一个空迁移:
> python manage.py makemigrations --empty core
然后我使用 RunPython 函数使用数据迁移编辑新创建的迁移文件。与此处的其他答案相比,文档中的模式略有不同:
https://docs.djangoproject.com/en/1.11/ref/migration-operations/
def create_types(apps, schema_editor):
db_alias = schema_editor.connection.alias
Type = apps.get_model("core", "Type")
Type.objects.using(db_alias).create(property=value)
class Migration(migrations.Migration):
dependencies = [
('core', '0001_initial'),
]
operations = [
migrations.RunPython(create_types),
]
关于python - 如何在 Django 数据迁移中创建新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755316/