- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 Django 1.3,我有一个 simple_tag,我需要返回一些未转义的 HTML,无论我做什么,它仍然会将我的 & 转义为 &和我的|至 %7C。
from django import template
from django.template import loader, Context
from django.utils.safestring import mark_safe
register = template.Library()
@register.simple_tag()
def show_stuff(arg1=None, arg2=None, arg3='someconstant'):
# Do some stuff
if someconstant == 'somevalue':
template_name = 'template1.html'
else:
template_name = 'template2.html'
template = loader.get_template(template_name)
html = template.render(Context( {'myvar': myvar,} ))
html = mark_safe(html)
print type(html)
return html
打印语句揭示了
<class 'django.utils.safestring.SafeUnicode'>
根据我的理解,这不应该被转义。我在模板中调用标签,如下所示:
{% show_stuff 'arg1' 'arg2' 'arg3' %}
非常感谢您的帮助。
更新:尝试了下面评论中的以下内容。没有返回错误,但仍然转义 HTML:
...
template = loader.get_template(template_name)
html = template.render(Context( {'myvar': myvar,} ))
html = mark_safe(html)
print type(html)
return html
show_stuff().is_safe=True
还尝试将 template1.html 和 template2.html 的内容包装在
中{% autoescape off %}
template html contents with & and |
{% endautoescape %}
并用自动转义标签包装 templatetag 调用本身。没有成功。
最佳答案
旧线程,但我最近遇到了同样的问题。我让它在 python 3.6 上工作。将简单标记中的值分配给变量txt,并使用模板标记“{{”输出txt,并向txt添加安全过滤器。
{% get_contentvalue user "htmlabout" as txt %}
{{txt|safe}}
关于django - mark_safe 不起作用/仍在 simple_tag 中转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11675804/
我正在尝试使用 simple_tag 并设置上下文变量。我使用的是 django 的 trunk 版本: from django import template @register.simple_ta
我有一个自定义 simple_tag,定义如下: @register.simple_tag # usage: {% get_contact_preference_string user %} def
这是我的 simple_tag 代码 @register.simple_tag def has_right(request,groupname): if permission(request,
我有一个自定义的简单标签。而且我似乎不能使用过滤器作为它的参数。 这是一个例子。 mysum 是标签。 myincrease 是过滤器。 foobar 是一个变量,我想将 foobar|myincre
我使用的是 Django 1.3,我有一个 simple_tag,我需要返回一些未转义的 HTML,无论我做什么,它仍然会将我的 & 转义为 &和我的|至 %7C。 from django impor
我是一名优秀的程序员,十分优秀!