I use django flatpages for a lot of content on our site, I'd like to extend it to accept django template tags in the content as well.
I found this snippet but after much larking about I couldn't get it to work. Am I correct in assuming that you would need too "subclass" the django flatpages app to get this to work? Is this best way of doing it? I'm not qui开发者_JAVA百科te sure how to structure it, as I don't really want to directly modify the django distribution.
1. A simple page view wich will render template tags by loading a template for each page:
in url.py
url(r'^page/(?P<slug>.*)/$','my_app.views.page_detail', name='page_url'),
in my_app/views.py
def page_detail (request, slug):
return render_to_response('page/' + slug + '.html', {},
context_instance=RequestContext(request))
2. Another method with flat pages stored in database, is to use a "template evaluation tag" in your template like this one.
edit You just have to modify flatpages template like this:
<!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>
An alternative approach could be to write a simple app based on the direct_to_template
generic view.
精彩评论