如何在Django中从视图中呈现模板标记

时间:2012-06-14 08:10:07

标签: python django django-templates django-views

我需要转义部分用户输入以进行输出。例如

Hey a status update for <a href="/profile/2353">@Friend Name</a> 

我只需要逃避文本的链接部分,以防有人做类似

的事情
<h1>HaCkEDED!!!!</h1>

所以我无法逃脱整个街区。所以我尝试了这个

'{%% autoescape off %%} <a href="/profile/%s">%s</a>{%% endautoescape %%}' % (tag, at)

当我将它发送到浏览器中的输出时,这就是我得到的

 {% autoescape off %} <a href="/profile/2353">@Friend Name</a>{% endautoescape %}

如何让autoescape工作?我不能使用单独的变量并放

{{ tag | safe }}

因为一个帖子可能有多个标签,而且标签位于不同的位置。那么我怎么能让Django让我输出一个模板呢?

2 个答案:

答案 0 :(得分:3)

我并不完全明白您要尝试做什么,但在视图中,您可以使用django.utils.safestring.mark_safe将项目标记为不需要自动转换。

答案 1 :(得分:0)

我认为使用custom templatetag or filter更容易做到这一点,可能还有一些可以识别标签的regex