2014-09-11 5 views
0

, пожалуйста, помогите решить проблему.Как заполнить таблицу данных?

описание товара python3.4, django1.6. Я пытаюсь поместить данные в базу данных из файла initial_data.json

после команды создана

python manage.py syncdb --all 

таблицы, но данные из файла initial_data.json не будут вписываться в столы. вот консольный выход:

(ds_d16)[email protected] ~/.virtualenvs/ds_d16/django_projects/drummersaransk_new $ python manage.py syncdb --all 
Syncing... 
Creating tables ... 
Creating table django_admin_log 
Creating table auth_permission 
Creating table auth_group_permissions 
Creating table auth_group 
Creating table auth_user_groups 
Creating table auth_user_user_permissions 
Creating table auth_user 
Creating table django_content_type 
Creating table django_session 
Creating table captcha_captchastore 
Creating table thumbnail_kvstore 
Creating table app_drummersaransk_city 
Creating table app_drummersaransk_status 
Creating table app_drummersaransk_gender 
Creating table app_drummersaransk_teacher 
Creating table app_drummersaransk_userprofile 
Creating table app_drummersaransk_pathglory 
Creating table app_drummersaransk_friends 
Creating table app_drummersaransk_message 
Creating table south_migrationhistory 

You just installed Django's auth system, which means you don't have any superusers defined. 
Would you like to create one now? (yes/no): yes 
Username (leave blank to use 'kalinins'): admin 
Email address: [email protected] 
Password: 
Password (again): 
Superuser created successfully. 
Installing custom SQL ... 
Installing indexes ... 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
    utility.execute() 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/base.py", line 242, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/base.py", line 285, in execute 
    output = self.handle(*args, **options) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/base.py", line 415, in handle 
    return self.handle_noargs(**options) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/south/management/commands/syncdb.py", line 92, in handle_noargs 
    syncdb.Command().execute(**options) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/base.py", line 285, in execute 
    output = self.handle(*args, **options) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/base.py", line 415, in handle 
    return self.handle_noargs(**options) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/commands/syncdb.py", line 162, in handle_noargs 
    database=db, skip_validation=True) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/__init__.py", line 159, in call_command 
    return klass.execute(*args, **defaults) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/base.py", line 285, in execute 
    output = self.handle(*args, **options) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/commands/loaddata.py", line 55, in handle 
    self.loaddata(fixture_labels) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/commands/loaddata.py", line 84, in loaddata 
    self.load_label(fixture_label) 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/management/commands/loaddata.py", line 134, in load_label 
    for obj in objects: 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/site-packages/django/core/serializers/json.py", line 65, in Deserializer 
    stream_or_string = stream_or_string.read() 
    File "/home/kalinins/.virtualenvs/ds_d16/lib/python3.4/codecs.py", line 313, in decode 
    (result, consumed) = self._buffer_decode(data, self.errors, final) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 86: invalid continuation byte 
+0

Ваш файл приспособления как-то неверен. Django ожидает, что это будет вход в Юникод, но, видимо, это не так. См. Также http://stackoverflow.com/questions/5552555/unicodedecodeerror-invalid-continuation-byte. – Evert

+0

спасибо! проблема в utf8 – dert

ответ

0

Работа с начальными данными json - это лаваш, по моему опыту. Легче создавать начальные значения, используя вставки sql. Создайте дамп sql из базы данных исходных значений и превратите их в отдельные отдельные файлы .sql. Поместите их в папку подходящего приложения.

Так что может быть что-то вроде:
- foo (your app) - sql (the sql folder *with* __init__.py) - bar.sql (your Bar model insert sql's)

Дайте этому попытку.

Смежные вопросы