使用Django模板removetags过滤器报错:Invalid filter: 'removetags'求助
错误原因
removetags并非Django默认加载的模板过滤器,需要手动启用对应模块或自定义实现才能使用。
解决方法
针对Django 3.0及以下版本
- 在项目
settings.py的INSTALLED_APPS列表中添加django.contrib.markup:
INSTALLED_APPS = [ # 其他已注册应用 'django.contrib.markup', ]
- 在使用该过滤器的模板文件顶部,加载markup标签库:
{% load markup %}
- 之后即可正常使用
removetags过滤器:
{{ content|removetags:"style link script"|safe }}
针对Django 3.1及以上版本(django.contrib.markup已被弃用)
官方已弃用django.contrib.markup模块,推荐自定义模板过滤器实现需求:
- 在你的Django应用下创建
templatetags目录(需包含空的__init__.py文件),新建custom_filters.py文件:
from django import template from django.utils.html import remove_tags register = template.Library() @register.filter def removetags(value, tags): return remove_tags(value, tags)
- 在模板文件顶部加载自定义过滤器:
{% load custom_filters %}
- 继续使用原有语法调用过滤器即可:
{{ content|removetags:"style link script"|safe }}
内容的提问来源于stack exchange,提问作者Dat_Derpy_Dude81
相关产品推荐
相关产品推荐

