Ошибка настроек загрузки данных Django - PullRequest
3 голосов
/ 23 апреля 2011

При попытке использовать loaddata на моей локальной машине (win / sqlite):

python django-admin.py loaddata dumpdata.json

Я получаю следующую ошибку:

raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

Я использую приложение djangoconfig, если это помогает:

"""
Django-config settings loader.
"""

import os

CONFIG_IDENTIFIER = os.getenv("CONFIG_IDENTIFIER")
if CONFIG_IDENTIFIER is None:
    CONFIG_IDENTIFIER = 'local'

# Import defaults
from config.base import *

# Import overrides
overrides = __import__(
    "config." + CONFIG_IDENTIFIER,
    globals(),
    locals(),
    ["config"]
)

for attribute in dir(overrides):
    if attribute.isupper():
        globals()[attribute] = getattr(overrides, attribute)

проекты> python manage.py loaddata dumpdata.json --settings = config.base

WARNING: Forced to run environment with LOCAL configuration.

Problem installing fixture 'dumpdata.json': Traceback
 (most recent call last):
  File "loaddata.py", line 174, in handle
    obj.save(using=using)

...


  File "C:\Python26\lib\site-packages\django\db\backends\sqlite3\base.py", line
234, in execute
    return Database.Cursor.execute(self, query, params)
IntegrityError: columns app_label, model are not unique

Ответы [ 3 ]

6 голосов
/ 23 апреля 2011

Не используйте django-admin.py для чего-либо другого, кроме настройки начального проекта.Если у вас есть проект, используйте вместо него manage.py - он устанавливает ссылку на ваш файл настроек.

3 голосов
/ 06 августа 2012

syncdb загрузит content_types, вам необходимо очистить эту таблицу перед загрузкой данных. Как то так:

c:\> sqlite3 classifier.db
sqlite> delete from django_content_type;
sqlite> ^Z
c:\> python django-admin.py loaddata dumpdata.json

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

1 голос
/ 23 апреля 2011

Существует два стандартных способа настройки Django.

  • Использование set (или export в Unix) set DJANGO_SETTINGS_MODULE=mysite.settings
  • В качестве опции с django-admin.py --settings=mysite.settings

Django-config работает по-другому, потому что позволяет иметь несколько файлов настроек. Django-config работает с manage.py, чтобы указать, что использовать. Вы должны использовать manage.py, когда это возможно; это устанавливает окружающую среду. В вашем случае попробуйте это, где - settings указывает на конкретный файл .py, который вы хотите использовать из папки конфигурации django-config.

django-admin.py loaddata dumpdata.json --settings=<config/settings.py>

На самом деле --settings хочет синтаксис пакета Python, так что, возможно, <mysite>.config.<your settings>.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...