Mutagena
Дек. 23, 2009 09:46:22
Задумалась над такой проблемой, как хранение настроек сайта на Django. Например, заголовок сайта, описание, ключевые слова, название используемой папки с шаблоном, и т д. То есть, если эти настройки перенести на ООП, то это должен быть синглтон-объект. Это значит этот объект может существовать только в единственном экземпляре.
Вот у меня и возник вопрос, как это реализовать в Django? Как обозначить в модели, что экземпляр класса может быть только один? Или может быть я в корне неверно подхожу к решению этой проблемы?
regall
Дек. 23, 2009 09:59:06
1. А чем settings.py не угодил?
2. Заголовок сайта, ключевые слова, описание в 99% случаев на каждой странице сайта будут разные и зависят от вида
вам в помощь
3.
Daevaorn
Лучший синглтон в питоне это модуль.
Если уж так сильно заинтересовал синглтон, то тема раскрыта
здесь
Mutagena
Дек. 23, 2009 10:02:21
regall, хочется создать модель, чтобы редактировать эти параметры в интерфейсе администратора.
За линк спасибо, изучу.
regall
Дек. 23, 2009 10:08:32
Mutagena
хочется создать модель, чтобы редактировать эти параметры в интерфейсе администратора.
Django-values вам в помощь.
expee
Дек. 23, 2009 10:09:02
Как по мне, так встроенная админка - это хороший инструмент для добавления/редактирования/удаления контента. А для настроек есть специальный файл settings.py.
Evg
Дек. 23, 2009 14:20:11
Если эти настройки будет менять юзер (не программист) то возможно есть смысл сделать ввиде отдельного приложения которое умеет хранить пары ключ\тип\значение, + которое например умеет скидывать все эти наборы в файл-конфиг (типа сохранение настроек) и доставать из файла. В качестве ООП реализации - можно взять одну модель на описание объекта (параметр-тип-значение) и стандартный ModelsManager для работы с ними в совокупности.
Такой примерно апи будет:
Param.objects.set(key,'val')
Param.objects.get(key = 'myparam')
Param.objects.save_to_file('my_config.cfg')
Param.objects.resore_from_file('my_config.cfg')
Если настройки меняет программер и они часто не меняются то лучше наверно сделать их в обчных settings файлах и не парится.
Mutagena
Дек. 23, 2009 22:04:27
regall, скачала django-values. Возник вопрос: куда вставлять папку dbsettings. В папку с проектом, или папку с Django?
tezro
Дек. 26, 2009 23:07:59
Mutagena
regall, скачала django-values. Возник вопрос: куда вставлять папку dbsettings. В папку с проектом, или папку с Django?
Без разницы, главное чтобы в путях было.