是否可以在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'),
答案 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}}字段,但不仅仅是那个),要么以编程方式与任何其他模型相似,要么我相信在管理页面中。