Форум сайта python.su
Задумалась над такой проблемой, как хранение настроек сайта на Django. Например, заголовок сайта, описание, ключевые слова, название используемой папки с шаблоном, и т д. То есть, если эти настройки перенести на ООП, то это должен быть синглтон-объект. Это значит этот объект может существовать только в единственном экземпляре.
Вот у меня и возник вопрос, как это реализовать в Django? Как обозначить в модели, что экземпляр класса может быть только один? Или может быть я в корне неверно подхожу к решению этой проблемы?
Офлайн
1. А чем settings.py не угодил?
2. Заголовок сайта, ключевые слова, описание в 99% случаев на каждой странице сайта будут разные и зависят от вида
context['meta']
DaevaornЕсли уж так сильно заинтересовал синглтон, то тема раскрыта здесь
Лучший синглтон в питоне это модуль.
Офлайн
regall, хочется создать модель, чтобы редактировать эти параметры в интерфейсе администратора.
За линк спасибо, изучу.
Офлайн
MutagenaDjango-values вам в помощь.
хочется создать модель, чтобы редактировать эти параметры в интерфейсе администратора.
Офлайн
Как по мне, так встроенная админка - это хороший инструмент для добавления/редактирования/удаления контента. А для настроек есть специальный файл settings.py.
Офлайн
Если эти настройки будет менять юзер (не программист) то возможно есть смысл сделать ввиде отдельного приложения которое умеет хранить пары ключ\тип\значение, + которое например умеет скидывать все эти наборы в файл-конфиг (типа сохранение настроек) и доставать из файла. В качестве ООП реализации - можно взять одну модель на описание объекта (параметр-тип-значение) и стандартный 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')
Офлайн
regall, скачала django-values. Возник вопрос: куда вставлять папку dbsettings. В папку с проектом, или папку с Django?
Офлайн
MutagenaБез разницы, главное чтобы в путях было.
regall, скачала django-values. Возник вопрос: куда вставлять папку dbsettings. В папку с проектом, или папку с Django?
Офлайн