2010-07-10 2 views
16

Фон:Когда вы должны использовать django-admin.py verus manage.py?

Когда я запускаю 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 documentation использовать django-admin.py вместо manage.py при демонстрации подкомандами таких как loaddata и dumpdata?

ответ

18

Если вы задали переменную окружения DJANGO_SETTINGS_MODULE, вы можете использовать django-admin.py из любого рабочего каталога, тогда как вам нужно быть в каталоге проекта, чтобы использовать (или иметь его на своем пути).

Использование virtualenv, и DJANGO_SETTINGS_MODULE устанавливается bin/activate, а затем вы можете использовать django-admin.py

7

Why do the Django documentation code examples using django-admin.py instead of manage.py when demonstrating subcommands such as loaddata and dumpdata?

Хорошо, потому что эти сценарии одинаковы в priciple, с различиями, о которых вы уже упоминали. В документах Django также упоминаются

django-admin.py <subcommand> [options] 
manage.py <subcommand> [options] 

бок о бок. Обычно вы используете django-admin.py для запуска нового проекта или приложения и manage.py, чтобы сделать все остальное.

+1

Я думаю, что это делает документацию более запутанным для менее опытных пользователей, и у меня есть около 9 месяцев работы с Джанго. Спасибо за вашу помощь! – citadelgrad

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