我有一个像这样的视图功能:
def user_agreement(request):
return response(request, template='misc/flatpage.html',
vars={'fp':FlatPage.objects.get(key='user-agreement')})
然后模板看起来像这样:
<h2>{% block title %}{{ fp.title }}{% endblock %}</h2>
{{ fp.content|markdown }}
这很好用,但我也希望在内容中包含一些Django {{filters}}
。是否有“评估”过滤器,所以我可以这样做:
{{ fp.content|evaluate|markdown }}
它会替换我的所有变量吗?或者最简单/最好的方法是什么?
答案 0 :(得分:2)
我不确定我是否正确理解了您的问题,但以下情况可能有效。
将flatpage.content
视为模板,并在视图中使用您希望的任何上下文进行渲染。
# view
from django.template import Template, Context
def user_agreement(request):
flatpage = FlatPage.objects.get(key='user-agreement')
t = Template(flatpage.content)
fp_content = t.render(Context({}))
return response(request, template='misc/flatpage.html',
vars={'title': flatpage.title, 'content': fp_content})
然后在misc/flatpage.html
模板中应用降价过滤器。
<h2>{% block title %}{{ title }}{% endblock %}</h2>
{{ content|markdown }}