扩展Django Flatpages以接受模板标签
我在我们的网站上使用django的flatpages来处理很多内容,我想扩展一下,让它也能在内容中使用django的模板标签。
我找到这个代码片段,但经过很多尝试,我还是没能让它工作。我是不是可以理解为,要让这个功能正常工作,你需要对django的flatpages应用进行“子类化”?这样做是最好的方法吗?我不太确定该怎么结构,因为我不想直接修改django的原始代码。
2 个回答
0
另一种方法是写一个简单的应用,基于 direct_to_template
这个通用视图。
8
1. 一个简单的页面视图,它会通过为每个页面加载一个模板来渲染模板标签:
在 url.py
文件中:
url(r'^page/(?P<slug>.*)/$','my_app.views.page_detail', name='page_url'),
在 my_app/views.py
文件中:
def page_detail (request, slug):
return render_to_response('page/' + slug + '.html', {},
context_instance=RequestContext(request))
2. 另一种方法是使用存储在数据库中的静态页面,可以在你的模板中使用一个“模板评估标签”,就像这个链接所示。
编辑 你只需要像这样修改静态页面模板:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
{% load evaluate_tag %}
{% evaluate flatpage.content %}
</body>
</html>