Фон:
Когда я работаю django-admin.py loaddata example.json
Я получаю эту ошибку. "ImportError: Настройки не могут быть импортированы, потому что переменная среды DJANGO_SETTINGS_MODULE не определена". Я понимаю проблему. Этому нужен DJANGO_SETTINGS_MODULE, чтобы смочь получить доступ к базе данных, чтобы сделать этот импорт. У меня была эта проблема прежде, и я управлял к шагу стороны ею к настоящему времени.
В чтении документов я обнаружил что manage.py
обертка для django-admin.py; это ставит проект sys.path
и наборы DJANGO_SETTINGS_MODULE
среда. Woot! Стоп! Я знаю, как решить мою проблему.
Soo... Почему примеры кода документации Django используют django-admin.py вместо manage.py при демонстрации подкоманд такой как loaddata
и dumpdata
?
Если у вас DJANGO_SETTINGS_MODULE
переменная среды задана, вы можете использовать django-admin.py
из любого рабочего каталога, тогда как вам нужно быть в каталоге проекта, чтобы использовать ./manage.py
(или иметь его в своем пути).
Используйте virtualenv
, и DJANGO_SETTINGS_MODULE
задано bin/activate
, а затем вы можете использовать django-admin.py
Почему примеры кода документации Django используют django-admin.py вместо manage.py при демонстрации таких подкоманд, как loaddata и dumpdata?
Ну, потому что эти сценарии одинаковы по принципу , с уже упомянутыми вами отличиями. Документы Django также упоминают
django-admin.py <subcommand> [options]
manage.py <subcommand> [options]
бок о бок. Обычно вы используете django-admin.py
, чтобы начать новый проект или приложение, и manage.py
, чтобы сделать все остальное.