Я ищу надежный метод инициирования ОТЛАДКИ для запросов INTERNAL_IPS на django рабочем сервере, не требуя изменения settings.py файла. Главным образом для получения панели инструментов, идущей, чтобы некоторые разработчики проверили проблемы о живых данных/медиа, но не полагаясь на них для сброса настроек, после того как они закончили.
Подобный этому методу. hovever это единственное развертывание исков.
в прошлом в базирующихся системах php у меня были mydomain.com и демонстрационный mydomaincom.myprodserver.com, куда prodserver домен может автоматически выполнить код отладки на основе $ _SERVER ['HOST_NAME'], но django испытывает недостаток в легком суперглобальном. например, в примере блога имя хоста является/etc/hostname не vhost.
Любые идеи ценятся.
Править:
У меня есть своего рода обходное решение (но идеально я предпочел бы более портативный) путем добавления/path/to/django_in_debug/к sys.path mydomaincom.myprodserver.com vhost запись. Затем в settings.py файле
try:
from django_in_debug.settings import *
except:
DEBUG = False
То, о чем вы просите, немного сложнее, чем кажется. Вы хотите показать отладочную информацию для определенных INTERNAL_IPS, которая происходит на -уровне запроса . Однако, вы говорите о файле settings.py, который находится на -уровне сайта.
Для этого, вам нужно, чтобы файл settings.py подвергался повторной оценке в каждом запросе, что, как вы можете сказать, является, вероятно, очень плохим направлением. В собственной документации Django, изменение настроек сайта после его загрузки - нет-нет (честно говоря, людям это сходит с рук, но это ничего не стоит официальной позиции Django).
Вот вам идея:
У вас есть 2 WSGI-файла. Первый WSGI файл указывает на ваши основные settings.py, а apache направляет на него трафик с сайта www.yourdomain.com... Второй WSGI файл указывает на debug_settings.py, а apache перенаправляет на него трафик с debug.yourdomain.com. debug_settinsg.py выглядит следующим образом:
from settings import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
Отсюда вы пишете простой промежуточный компонент для ловушки входящих запросов. IP-адрес запроса сравнивается с settings.INTERNAL_IPS и при обнаружении совпадения запрос перенаправляется на debug.yourdomain.com.
Это позволяет сохранить 1 копию сайта, но изменить настройку уровня сайта на основе значения уровня запроса.
.