установка DJANGO_SETTINGS_VARIABLE вручную - PullRequest
1 голос
/ 19 июня 2011

Чтобы иметь возможность использовать бездействующую оболочку с django, я пытаюсь установить DJANGO_SETTINGS_VARIABLE вручную. Я включил каталог, в котором settings.py находится в sys.path.и смог импортировать его. Но следующее не делает Кажется, не работает.

  import settings
  from django.core.management import execute_manager
  execute_manager(settings)

я тоже пробовал

 settings = imp.find_module('settings')
 execute_manager(settings)

получение подсказки от manage.py, но безрезультатно. что здесь происходит, а также как можно импортировать файл как модуль, я помню, что модуль должен иметь файл inti внутри директории.

Ответы [ 2 ]

5 голосов
/ 19 июня 2011

У меня также были некоторые трудности с загрузкой настроек вне обычного сценария использования. Я не уверен на 100%, что понимаю вашу трудность здесь, поэтому я дам вам несколько возможностей, и если вы сможете немного уточнить, я постараюсь помочь вам в дальнейшем.

Если все, что вам нужно, это использовать бездействующую оболочку, я думаю, django создан для того, чтобы сделать это легко с:

python manage.py shell

при условии, что idle - ваша оболочка по умолчанию (хотя я надеюсь, что вы воспользуетесь ipython, если это так, поскольку вам, вероятно, понравится переход в долгосрочной перспективе).

Если вы хотите установить системную переменную для django, она называется: DJANGO_SETTINGS_MODULE, а не DJANGO_SETTINGS_VARIABLE, или, по крайней мере, так было, когда я ее использовал. То, как вы устанавливаете переменную перед запуском оболочки, вероятно, будет зависеть от платформы. В Linux вы хотите отредактировать ваш .bashrc. В Windows вы можете сделать следующее: "SET DJANGO_SETTINGS_MODULE = your.python.path.to.django.settings."

Если вы хотите динамически настроить среду в программе перед тем, как запускать оболочку, вы можете сделать это, например ::

.
import settings
from django.core.management import setup_environ
setup_environ(settings)

Надеюсь, это поможет; дайте мне знать, если вам нужно что-то еще.

1 голос
/ 19 июня 2011

Вы должны использовать configure ()

from django.conf import settings
from myapp import myapp_defaults

settings.configure(default_settings=myapp_defaults, DEBUG=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...