Django“评估”过滤器?

时间:2010-08-06 19:10:02

标签: django django-template-filters

我有一个像这样的视图功能:

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 }}

它会替换我的所有变量吗?或者最简单/最好的方法是什么?

1 个答案:

答案 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 }}