2015-05-08 4 views
0

Мой вопрос очень похож на How do I populate the Django table django_site in a yaml fixture?, но мне нужна помощь в этом.Как заполнить таблицу Django MyApp_user_groups в ямблере?

создать группу в auth_group столе в моем YAML арматуре:

- model: auth.Group 
    pk: 1 
    fields: 
    name: admin 

В моей MySql У меня есть таблица с именем Django: MyApp_user_groups, где MyApp это имя приложения Django; эта таблица автоматически создается Django. Эта таблица должна подключить модель MyApp.User (созданная мной) к модели групп Django. Используя приспособление YAML, я хочу добавить кортеж в этой таблице (с целью добавления пользователя в группу автоматически при запуске syncdb), но я получаю следующее сообщение об ошибке:

DeserializationError: Invalid model identifier: MyApp.User_Groups 

Так код is

- model: MyApp.User_Groups 
    pk: 1 
    fields: 
    user_id: 2 
    group_id: 1 

Я новичок с Django. Любые идеи?

+0

вы использовали прописной и или нижний регистр и, для 'User_Groups'? выглядит как орфографическая ошибка для меня. как называется ваша модель? это должно быть yourapp.yourmodel name. Поэтому обратите внимание на случай U и G. – Cheng

+0

MyApp_user_groups - это много-много таблиц, созданных django. В этой таблице должна быть подключена модель MyApp.User (созданная мной) к модели групп django. – MobileOS

ответ

0

Если вы используете Django> = 1.7 (с миграциями), вы можете (и должны) использовать миграцию данных. https://docs.djangoproject.com/en/1.7/topics/migrations/#data-migrations

def create_group(apps, schema_editor): 
    Group = apps.get_model("auth", "Group") 
    g = Group.objects.create("Your group name") 
    UserGroup = apps.get_model("MyApp", "User_Group") 
    UserGroup.objects.create(user_id=2, group_id=g.id) 


class Migration(migrations.Migration): 

    dependencies = [ 
     ('MyApp', '0001_initial'), 
     ('auth','0001_initial'), 
    ] 

    operations = [ 
     migrations.RunPython(create_group), 
    ]