关于'selffilter' is not a registered tag library. Must be one of:

本文详细解析了在Django中遇到的'selffilter'不是注册的标签库错误,提供了从创建自定义过滤器到在settings.py中正确配置的步骤。纠正了常见的拼写错误,并强调了在调用自定义函数时避免使用空格的重要性。

报错代码:

'selffilter' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_static
admin_urls
cache
i18n
l10n
log
static
staticfiles
tz

 解决方法:

 

 

错误可能:

1. 在你的app目录下新建templatetags文件夹里没创建__init__.py定义为包

 

2. 程序编写问题

在templatetags下创建myfilter.py 文件

 

html文件中

 

3.settings.py未设置


 上面是摘自https://blog.csdn.net/qq_40326481/article/details/80342480

补充其他的方法:

不知道是我的版本问题还是必须的这么写,我在检查了上面的几种方法之后还是报相同的错误,找了好久,终于找到了出错地地方

原来的代码:

from django import template
registor = template.Library() #注册

#告诉Djiango这个函数的名字是mmd
@registor.filter(name="mmd")
def mmd1(arg,name):
    return "%s亲了%s一下"%(arg,name)

 

修改:由于我的单词写成了registor,所以一直报错。

把单词改为register就不报错了,难道统一了入口?

from django import template
register = template.Library() #注册

#告诉Djiango这个函数的名字是mmd
@register.filter(name="mmd")
def mmd1(arg,name):
    return "%s亲了%s一下"%(arg,name)

 注意在调用函数的时候,

{% load selffilter %}
<p>{{ dict.dxx|mmd:"xpg" }}</p>

 

 一定不要加上空格。

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/accolade/p/10782162.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值