Django中flatpages的特定模板

时间:2009-11-08 03:08:19

标签: django django-flatpages

是否可以在Django中为不同的flatpages链接特定的模板?

例如:

/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 个答案:

答案 0 :(得分:7)

我不知道你有什么版本的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

答案 1 :(得分:1)

当然!按照说明here安装flatpages后,您可以覆盖任何给定平面的默认模板(flatpages/default.html) - 具体来说,您可以自定义FlatPage model的实例(尤其是{{ 1}}字段,但不仅仅是那个),要么以编程方式与任何其他模型相似,要么我相信在管理页面中。