我在这里做错了什么?
我在位于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
问题是我在同一个模块中有两个过滤器吗?这是允许的吗?
答案 0 :(得分:1)
您的过滤器定义很好。问题在于缺少冒号和缩进:
@register.filter
def roundnumber(value):
if value > 1.75 and value < 2.25: # colon
return 2 # indentation
# ...