遇到的问题
TemplateSyntaxError("Invalid filter: '%s'" %initial_letter_filter)
铺垫知识
过滤器应用在django的模板中,例如
<p>Dear {{ person_name|cut:'5'}}</p>
即可将person_name中的字符‘5’全部剔除后输出到HTML上,cut即为过滤器。
过滤器也可视为一个普通的函数,以cut为例,参数有两个 一个是管道符('|')前面运算所产生的值,另一个是冒号(‘:’)后面的值。
如果实现一个自定义过滤器需要几个步骤,
创建一个APP并在settings文件中注册
在APP中创建templatetags文件夹,确保文件夹下有init.py文件,再在该文件夹中创建一个过滤器文件 例如 review_extract.py
然后在需要用到的模板中在用之前加入这句话 {% load review_extrat %} load后面的蓝色字符与过滤器文件名保持一致。然后问题来了。
我创建了一个过滤器 名为 initial_letter_filter 但引入到模板中却提示TemplateSyntaxError("Invalid filter: '%s'" %initial_letter_filter)问题,令我百般费解,查询很久也没有查询到。
我的问题出现在了引用过滤器的模板Thanks_email.html和base模板之间的问题。
前方提到过,在过滤器使用前要在模板中加入一句话 {% load review_extrat %} ,但是我把这句话加到了base.html中想省事,但是在使用过滤器的子模板中没有加入这句话,所以查询不到。所以,这句话要加在引用过滤器的模板中,才可以找到过滤器,加入到base里面没有用的。像这样
好了问题解决了。