Специальные шаблоны для плоских страниц в Django

Можно ли связать конкретные шаблоны для разных плоских страниц в Django?

Например:

/about/    ->   templates/flatpages/about.html
/contact/  ->   templates/flatpages/contact.html

Это то, что у меня есть, но все эти страницы указывают на шаблон default.html

url(r'^(?P<url>about/)$', 'django.contrib.flatpages.views.flatpage'),
url(r'^(?P<url>contact/)$', 'django.contrib.flatpages.views.flatpage'),
url(r'^(?P<url>feedback/)$', 'django.contrib.flatpages.views.flatpage'),

2 ответа

Решение

Я не знаю, какая у вас версия Django, но в 1.1.1 есть ссылка "Дополнительные параметры" внизу админ-панели добавления / редактирования плоской страницы (например, http://127.0.0.1:8000/admin/flatpages/flatpage/add/, Там вы можете включить комментарии, включить требование регистрации и изменить шаблон.

Программно вы можете сделать:

from django.contrib.flatpages.models import FlatPage
my_flat_page = FlatPage.objects.get(title="example")
my_flat_page.template_name = "/flatpages/example.html"
my_flat_page.save()
#or just:
#from django.contrib.flatpages.models import FlatPage
#FlatePage.objects.filter(title="example").update(template_name="/flatpages/example.html")
#if you like one-liners

Конечно! После установки плоских страниц в соответствии с инструкциями здесь, вы можете переопределить шаблон по умолчанию (flatpages/default.html) для любой данной плоской страницы - в частности, вы можете настроить экземпляры модели FlatPage (особенно template_name поле, но не только), либо программно, как для любой другой модели, или, я думаю, на странице администратора.

Другие вопросы по тегам