2015-06-04 1 views
0

Я использую Django. Я создал новую модель с именем suggestion_title, которая имеет два поля с именем fa_id, desc. И у меня есть данные в форме текста, чтобы заполнить это. Так что есть способ загрузить данные путем миграции или что-то еще. Я не хочу добавлять данные вручную. Я слышал о креплении, но не смог найти хорошего решения. пожалуйста помоги.Как загрузить данные в модели через миграции в django?

+0

Какую версию Django вы используете? – Brandon

ответ

0

Вам необходимо использовать приспособление, а не миграцию. Светильники могут быть в формате JSON, XML или YAML. Django documentation объясняет, как использовать светильники.

В вашем случае JSON приспособление может выглядеть следующим образом:

[ 
    { 
    "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

+1

Это решение устарело, поскольку Django 1.7 –

+0

@Joseph См. Https://docs.djangoproject.com/en/1.8/howto/initial-data/#automatically-loading-initial-data-fixtures для получения дополнительной информации. – Brandon

+0

m, используя Django 1.7, поэтому вы говорите, чтобы создать файл fixture и просто запустить следующую команду: python manage.py myfixture.json ?? Право ?? Будет ли это заполнять данные в моих таблицах? – NewPie

1

Для старше в версиях Django вы можете использовать приспособления, но для версий> = 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), 
    ] 
Смежные вопросы