我在我们的网站上使用了django的大量内容,我想扩展它以接受内容中的django模板标签。扩展Django的页面以接受模板标签
我发现这个snippet,但经过许多闲话我无法让它工作。我是否正确地认为你需要“子类化”django flatpages应用程序才能使其工作?这是做这件事的最好方式吗?我不太确定如何构建它,因为我不想直接修改django发行版。
我在我们的网站上使用了django的大量内容,我想扩展它以接受内容中的django模板标签。扩展Django的页面以接受模板标签
我发现这个snippet,但经过许多闲话我无法让它工作。我是否正确地认为你需要“子类化”django flatpages应用程序才能使其工作?这是做这件事的最好方式吗?我不太确定如何构建它,因为我不想直接修改django发行版。
一个简单的页面视图至极将通过加载一个模板,每个页面呈现的模板标签:
在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。存储在数据库中的平面页的另一种方法是t o在模板中使用“模板评估标签”,如this one。
编辑你只需要修改flatpages template这样的:
<!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>
另一种方法可能是编写一个基于direct_to_template
generic view的简单应用程序。
嗨普约尔, 这不会帮助我,因为我有很多的进入和保持文本的通过扁平网页管理界面,问题是我需要能够在那里输入django模板标签以及纯文本,并让它们呈现。 – 2010-06-18 19:43:46
嗨皮埃尔, 问题是我有很多平板应用程序的内容,但我经常希望能够包括Django标签以及通过平板管理界面输入他们,我不想我认为您的示例显示了将内容单独保存在模板中? 我确实看了一下你建议的模板评估标签,但我很难理解这将如何帮助我实现目标 – 2010-06-18 19:42:58
Tristan,我编辑了我的回复并添加了详细的模板。希望能帮助到你。 – 2010-06-18 22:15:50
嗨皮埃尔,你的例子我更好地理解评估标签是如何工作的,而且看起来像是我的解决方案,感谢你抽出时间来解释。据我了解,evaluate_tag只是读取flatpage的输出,并在那个时间点处理相关标签。看起来很完美... – 2010-06-23 23:12:12