2009-07-27 4 views
4

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

+2

Является альтернативным справочником шаблонов предпочтительным решением? Было бы намного проще поддерживать один и тот же шаблон и просто поменять ссылку на CSS, указанную в шаблоне, в зависимости от предпочтений пользователя. Это позволило бы значительно изменить макет, но, возможно, есть прецедент, о котором я не знаю, что сделало бы необходимость замены каталога шаблонов ... – shawnr

ответ

6

Шаблоны - это текстовые файлы в каталоге на вашем сервере.

Меню - это список каталогов.

Конкретный шаблон для загрузки указан в ваших render_to_response вызовах в каждой функции просмотра.

Это удивительно просто и элегантно.

Вам не нужно делать шаблон «swap». Вы можете просто иметь все шаблоны, которые вы когда-либо хотели, в пути поиска шаблона. Все могут быть доступны для всех пользователей в любое время. Вы просто предоставляете directory_name/template_name. Все обработано для вас.

Не используйте явные куки-файлы. Django уже делает это за вас. См. chapter 12 книги Джанго.

Используйте Profiles extension и поместите выбранное имя каталога шаблона в профиль пользователя.

2

Когда пользователь выбирает шаблон, сохраните имя шаблона/некоторый псевдоним в файле cookie. Когда пользователь снова загружает страницу, в функции просмотра проверьте идентификатор шаблона в файле cookie. Если идентификатор присутствует, извлеките фактический путь шаблона и передайте его функции render_to_response.

Смежные вопросы