документы

ел бы предоставить некоторые (специфичные для приложения) настройки интерфейсу администратора, чтобы пользователи могли их удобно менять, а также не нужно перезапускать Django.

Как я должен идти об этом?

Я проверил приложения наhttp://djangopackages.com/grids/g/live-setting/ (кстати, django-constance был самым привлекательным), но на самом деле все эти приложения делают хранение значений в базе данных, предоставление веб-интерфейса для их изменения и кэширование. Разве первые две функции уже не встроены в Django?

Самый большой недостаток, который я вижу, заключается в том, что ни одно из приложений не является заменой старого расположения этих настроек (settings.py) и требует от меня перехода на их нотацию и частого добавления другого контекстного процессора для доступа к ним в шаблонах.

Разве я не могу просто сделать это?

Создайте модель для моих настроек (это дает мне различные типы и проверку)Создайте один такой объект для хранения моих настроек (это позволяет пользователям редактировать их в интерфейсе администратора) - я могу сбросить настройки по умолчанию, как и для других моделей.Wrap settings.py, чтобы он сделал запрос к базе данных для моих настроек -http://www.loose-bits.com/2011/04/extending-django-settings-with-derived.html

С моей текущей, наивной точки зрения, единственные недостатки, которые я вижу, были бы:

Добавление или изменение доступных настроек требует переноса схемы (на юг). - Я могу жить с этим.У меня есть модель с несколькими экземплярами, но мне нужен только синглтон. - Это может быть полезной функцией в какой-то момент.Производительность / Кэширование: взгляд наhttp://code.djangoproject.com/svn/django/trunk/django/conf/ Мне нужно было бы добавить немного хитрости в оболочку настроек и / или модель, чтобы модель изменила очистку или обновила кэшированные значения. - не похоже на ракетостроение.Выполнение того же в другом проекте потребует аналогичных усилий снова. - Я думаю, что единственная словарная константа в settings.py, содержащая названия моделей и имена полей для поиска, - это все, что будет отличаться.

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

Ответы на вопрос(6)

Ваш ответ на вопрос