如何通过django中的迁移来上传模型中的数据?

时间:2015-06-04 15:20:09

标签: python django django-models

我正在使用Django。我创建了一个名为suggestion_title的新模型,它有两个名为fa_id,desc的字段。我有文本形式的数据填写。那么有没有办法通过迁移或其他方式上传数据。我不想手动添加数据。我听说过夹具但无法找到好的解决方案。请帮忙。

2 个答案:

答案 0 :(得分:1)

对于旧版本的Django,您可以使用fixture,但对于版本> = 1.7,首选的方法是数据迁移:

https://docs.djangoproject.com/en/1.8/topics/migrations/#data-migrations

# -*- coding: utf-8 -*-
from django.db import models, migrations

def create_objects(apps, schema_editor):
    SuggestionTitle.objects.create(fa_id="foo", desc="bar")

class Migration(migrations.Migration):

    dependencies = [
        ('yourappname', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(create_objects),
    ]

答案 1 :(得分:0)

您需要使用灯具,而不是迁移。 Fixtures可以是JSON,XML或YAML格式。 Django documentation解释了如何使用灯具。

在您的情况下,JSON fixture可能如下所示:

[
  {
    "model": "YOURAPPNAME.suggestion_title",
    "fields": {
      "fa_id": "FOO",
      "desc": "BAR"
    }
  },
  {
    "model": "YOURAPPNAME.suggestion_title",
    "fields": {
      "fa_id": "BAZ",
      "desc": "QUX"
    }
  }
]

创建灯具后,使用loaddata管理命令加载灯具,例如:

manage.py loaddata myfixture.json