Я переношу приложение Google App Engine с Django 0,96 на 1,2 .В процессе я заметил, что файл настроек, указанный в моем главном обработчике, больше не загружался (вместо 3-х указанных языков Django загрузил полный список языков по умолчанию из своего файла django/conf/global_settings.py
).
В 0.96 я указал файл следующим образом:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings'
Из того, что я прочитал в документации, это не должно изменяться.Тем не менее, при указании версии 1.2, как это:
from google.appengine.dist import use_library
use_library('django', '1.2')
conf.settings
больше не импортируется.Копаясь в SDK GAE, я заметил, что версии файла google_appengine/lib/django_<VERS>/django/conf/__init__.py
0.96 и 1.2 работают по-разному.
В 0.96 LazySettings._import_settings
вызывается из LazySettings.__getattr__
, что приводит к указанному файлув os.environ['DJANGO_SETTINGS_MODULE']
для импорта.
В 1.2, LazySettings._setup
, кажется, нигде не вызывается.
Если я добавлю ручной вызов к settings._setup()
в моем главном обработчике,файл пользовательских настроек импортируется правильно.Например:
from django.conf import settings
settings._target = None # Force Django to reload settings
settings._setup()
Однако, кажется странным / неправильным вызывать эту частную функцию вручную ... Почему мой файл пользовательских настроек больше не импортируется?