我一直在尝试用Django创建这个自定义过滤器,但我一辈子都不能让它工作。在
在我的templatetags文件夹中,我有文件__init__.py
和{
{% load staticfiles %} {% load alcextra %}
然后扩展到我的主html文件。我试着把它放在主html文件中。在
在alcetra.py我已经写信了
from django import template
register = template.Library()
@register.filter
def multiply(value, arg):
return value * arg
我试过很多不同的@register版本,比如
@register.filter("multiply", multiply)
@register.filter(name="multiply")
@register.filter()
@register.simple_tag(takes_context=True
并且都返回相同的错误,无效的过滤器:“multiply”。在这一点上,我不知道该做什么或尝试什么。在
编辑:有问题的模板。在
^{pr2}$令人恼火的是,我在另一个项目中尝试了这个方法,但它奏效了。所以我不太确定我做了什么,没有做什么。在
编辑2:
答案是@Alasdair说的。我想我可以在模板中加载过滤器,然后在其他地方使用它,但事实并非如此。在
它是Django模板语言的documented feature,当您加载自定义标记或筛选器时,它不会自动在子模板中可用。在
您没有在基模板中使用过滤器,因此不需要在那里加载
alcextra
库。在然后将load语句添加到使用筛选器的任何子模板中,例如:
相关问题 更多 >
编程相关推荐