2017-02-06 4 views
1

Я пытаюсь использовать django-admin dbshell (любой другой cmd дает тот же результат) в моем проекте. И я получилDjango не может импортировать настройки

You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

Так что я сделал

export DJANGO_SETTINGS_MODULE=mysite.settings 

и теперь я получаю

no module named 'mysite' 

Конечно я заменить 'MySite' с именем моего приложения. Btw я уже имел в своем коде:

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 

любую идею? Thanks

+0

Сколько настроек файлов у вас есть? Например. 'local.py',' prod.py' и т. д. –

+0

Какую версию Django вы используете? – MicroPyramid

+0

Django version 1.10.5, у меня есть только один файл settings.py в корне моего приложения. Btw, если я поместил «mysite.settings» в DJANGO_SETTINGS_MODULE, тогда я даже не смогу запустить 'django-admin' самостоятельно и получить справочное сообщение – dkx22

ответ

4

вы можете сделать:

python manage.py dbshell --settings=mysite.settings 
+1

Обратите внимание, что команда'./Manage.py' по умолчанию будет ' mysite.settings' - вам нужно только '--settings', чтобы указать пользовательский файл настроек. – Alasdair

2

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

Когда вы используете django-admin, каталог, содержащий mysite, должен находиться на пути Python для Django, чтобы иметь возможность загружать mysite.settings.

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