在django中注册自定义过滤器

时间:2014-08-02 01:18:02

标签: python django django-templates django-template-filters

我的过滤器没有注册,也不确定它被绊倒的地方。

在test / templatetags

__init__.py
test_tags.py

test_tags.py包含

from django import template

register.filter('intcomma', intcomma)

def intcomma(value):
    return value + 1

test / templates包含pdf_test.html,内容如下:

{% load test_tags %} 
<ul>
    <li>{{ value |intcomma |floatformat:"0"</li>
</ul>

浮动格式工作正常但在intcomma上没有运气

1 个答案:

答案 0 :(得分:9)

首先,你haven't defined register

  

要成为有效的标记库,模块必须包含模块级别   变量named register是一个template.Library实例,其中   所有标签和过滤器都已注册。

另外,我通常用register.filter装饰函数:

from django import template

register = template.Library()

@register.filter
def intcomma(value):
    return value + 1