如何剥离已经过滤的标签?

时间:2011-03-03 18:50:18

标签: django django-models django-templates

我有这个模型由第三方创建,我需要访问此模型并删除标签,我想我可以使用| removetag过滤器,但似乎标签是预先转义的模型,任何人对于我如何从模板端删除这些标签有一些建议?

1 个答案:

答案 0 :(得分:1)

这取决于你的意思已经过滤了&#39 ;;你能提供任何示例字符串吗?

通过|safe|removetags帮助运行吗?

我想你也意识到如果你想删除所有标签,你可以使用|striptags

编辑:上传的示例数据。

好的,如果你的字符串看起来像那样,你就需要创建django" escape"过滤器 - 例如在您的某个应用中创建templatetags模块,创建unescape.py

from django import template
from django.utils.safestring import mark_safe
from django.utils.encoding import force_unicode

register = template.Library()

@register.filter
def unescape(value):
    return mark_safe(force_unicode(value).replace('&lt;', '<').replace('&gt;', '>').replace('&quot;', '"').replace('&#39;', "'").replace('&amp;', '&'))

不要忘记在__init__.py目录中创建templatetags,然后重新启动服务器以便注册。

然后在你的模板中:

{% load unescape %}
...
{{ example_string|unescape }}

如果您以前没有这样做,请参阅http://docs.djangoproject.com/en/dev/howto/custom-template-tags/以获得更好的说明。

或者你可以在某个地方使用python代码在你的模型上运行它,但你的问题是关于&#34;模板方面&#34;。