Что я здесь делаю неправильно?
У меня есть roundnumber в модуле под названием account_extras.py, расположенном в каталоге templatetags. В моем шаблоне вверху есть {% load account_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
Проблема в том, что у меня два фильтра в одном модуле? Это разрешено?
roundnumber
содержит много синтаксических ошибок, сначала исправьте их. Кроме того,value > 1.75 and value < 2.25
может быть записано как1.75 < value < 2.25
- person okm   schedule 23.12.2014roundnumber
может быть переписана какreturn 0.5 * math.ceil(value * 2)
Если нет, то вы можете сохранить это значение, и если оно выходит за пределы 2 и 4, вы можете вернуть все, что хотите. - person sberry   schedule 23.12.2014