扩展Django Flatpages以接受模板标签

8 投票
2 回答
3272 浏览
提问于 2025-04-16 00:07

我在我们的网站上使用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>

撰写回答