Если вы хотите, чтобы определенный набор переменных был доступен для всех ваших шаблонов, вам нужны контекстные процессоры.
http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors
Дополнительные ссылки
http://www.b -list.org / блог / 2006 / июнь / 14 / Джанго-подсказка-шаблон-контекстные процессоры /
http://blog.madpython.com/2010/04/07/django-context-processors-best-practice/
Код для ваших контекстных процессоров, может жить где угодно в вашем проекте. Вам просто нужно добавить его в файл settings.py под:
TEMPLATE_CONTEXT_PROCESSORS =
Вы можете сохранить свои константы в файле settings.py или даже в файле constants.py и просто
from constants import *
Однако, как вы упомянули, вам нужно будет перезагружать сервер каждый раз, когда обновляются настройки. Я думаю, вам сначала нужно выяснить, как часто вы будете изменять эти настройки? Стоит ли прилагать дополнительные усилия для автоматической перезагрузки настроек?
Если вы хотите автоматически включить настройки, каждый раз, когда они обновляются, вы можете сделать следующее:
- Сохранение настроек в БД
- После сохранения / изменения записать вывод в файл
- settings.py / constants.py читает файлы
- перезагрузить сервер
Кроме того, вы посмотрите на мезонинный проект , который позволяет вам обновлять настройки из интерфейса администратора django и также перезагружается.
См .: http://mezzanine.jupo.org/docs/configuration.html
Если переменные, которые вам нужны, будут обновляться нечасто, я предлагаю просто сохранить их в settings.py и добавить собственный процессор контекста.
Если вы используете систему контроля версий, такую как GIT , обновление будет довольно простым, вы можете просто обновить файл и отправить его на свой сервер. Для действительно простой перезагрузки сервера вы также можете создать ловушку после получения для git, которая будет автоматически перезагружать сервер при нажатии нового кода.
Я бы предложил другой вариант, только если вы обновляете настройки довольно регулярно.