2010-09-12 4 views
1

Кто-нибудь сталкивался с идеей «приложения настроек» для проекта django?Приложение настроек Django?

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

Есть ли приложения, готовые к использованию?

Я, вероятно, не сказал, что мой вопрос ясен. Я не имею в виду редактирование таких вещей, как настройки соединения, а также такие вещи, как «ограничение размера файла».

+1

настройки для чего? Настройки проекта или настройки приложения? –

ответ

5

Существует очень хорошее приложение, которое делает это, называется Джанго-dbsettings. Официальное репо не обновлялось годами, но у меня есть обновленная вилка на my github page.

+0

спасибо, я хотел знать, использует ли кто-то такой подход. В итоге я создал собственное приложение для dbsettings (мне просто нужно немного настроек), с моделью для каждой группы настроек (например, FileSizeLimitsModel). Я также сделал некоторые пользовательские теги, поэтому они видны во всех представлениях, которые мне нужны. – mhaligowski

1

Вопрос в том, как сохранить настройки.

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

Если это файловая система, это означает, что вам придется включать файл Python, который изменяется на вашем веб-сервере, что для меня представляет огромный риск для безопасности.

Итак ... по-моему, это можно сделать, но я бы проголосовал против него, так как это опасно. Если что-то нужно настраивать из Интернета, реализуйте это в приложении :)

1

Это похоже на то, что вы спрашиваете «Как администратор меняет настройки (например, параметры подключения к базе данных) без изменения settings.py

Если ваш администратор не достаточно знаком с питоном, чтобы изменить файл settings.py непосредственно, вы можете рассмотреть вопрос о предоставлении админ более простой файл для редактирования, возможно, config file, что вы загрузили из settings.py. Тогда все, что вам нужно сделать, это отредактировать файл конфигурации и перезапустить сервер.

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

(Другой вариант был бы, чтобы получить лучшие админ ...)

+0

+1: Мы обрабатывали это в другом (возможно, не столь хорошем) способе, как в способе файла конфигурации. У нас есть 'try/except' для' local_early_settings.py' и 'local_late_settings.py', которые проверяются возле верхней и нижней части основного файла settings.py. Первоначально они предназначались для разных настроек в отдельных рабочих пространствах отдельных разработчиков, но это также было полезно, когда один из наших менее знающих людей закручивает один из ранних/поздних файлов. О, и эти два файла также перечислены в файле .hgignore, чтобы они не случайно попали в производство. –

+0

Я бы не позволял администратору сайта (я не имею в виду dba или sysadmin) изменять настройки подключения db. – mhaligowski

+0

-1 Иногда у вас есть переменные, которые вы хотите контролировать неспециалистом. Даже предоставление им более простого файла требует также предоставления им CLI-доступа к серверу, что может привести к проблемам безопасности или технологии. Иногда хороший пользовательский интерфейс с ключевыми значениями хорош. – 2014-02-20 00:12:20