Сайт администратора Django: как создать единую страницу для глобальных настроек? - PullRequest
6 голосов
/ 06 октября 2010

Я хотел бы создать одну страницу на административном сайте django, где я могу изменить некоторые глобальные переменные сайта (название сайта, элементы в меню навигации и т. Д.). На данный момент я закодировал их как контекстные процессоры, но я хотел бы сделать их редактируемыми. Нечто похожее на то, что происходит в WordPress.

Возможно ли это?

  • Я могу хранить данные в базе данных, но могу ли я иметь ссылку на сайт администратора, которая идет прямо к первой записи документа и не позволяет создавать несколько записей (они не имеют смысла)
  • Вместо создания модели в базе данных можно было бы изменить некоторый context_processor с сайта администратора (я думаю, что это будет лучше)

Ответы [ 3 ]

3 голосов
/ 06 октября 2010

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

2 голосов
/ 06 октября 2010

Существует приложение под названием django-values ​​, которое позволяет хранить конкретные настройки в базе данных.

1 голос
/ 06 октября 2010

Это похоже на то, для чего предназначен фреймворк сайтов.

http://docs.djangoproject.com/en/dev/ref/contrib/sites/

"Это ловушка для привязки объектов и функциональности к определенным веб-сайтам, и это место хранениядля доменных имен и «подробных» имен ваших сайтов на платформе Django. "

Документы делают его звучащим так, как будто он подходит только для нескольких сайтов, но это отличное место для размещения материалов на одном сайте.Пер-джанго модель тоже.

...