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