首页 文章

为什么此模板过滤器无效?

提问于
浏览
0

我在这做错了什么?

我在位于templatetags目录中的名为accounts_extras.py的模块中有多个数字 . 在我的模板中,我在顶部有{%load accounts_extras%} . 同样值得注意的是,'upto'目前正在另一个模板中工作(尚未在此模板上尝试过),但问题在于是否为圆形 . {{staravg.stars__avg | roundnumber}}给我一个无效的过滤器错误 .

#accounts_extras.py
from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def upto(value, delimiter=None):
    return value.split(delimiter)[0]
upto.is_safe = True


@register.filter
def roundnumber(value):
    if value > 1.75 and value < 2.25
    return 2
    if value > 2.25 and value < 2.75
    return 2.5
    if value > 2.75 and value < 3.25
    return 3
    if value > 3.25 and value < 3.75
    return 3.5
    if value > 3.75 and value < 4.25
    return 4

问题是我在同一个模块中有两个过滤器吗?这是允许的吗?

1 回答

  • 1

    您的过滤器定义很好 . 问题是缺少冒号和缩进:

    @register.filter
    def roundnumber(value):
        if value > 1.75 and value < 2.25: # colon
            return 2 # indentation
        # ...
    

相关问题