Я заметил, что есть встроенный фильтр add
, но я не смог найти divide
.
Я новичок в Django и не уверен, есть ли такой фильтр.
Я заметил, что есть встроенный фильтр add
, но я не смог найти divide
.
Я новичок в Django и не уверен, есть ли такой фильтр.
Нет. Но если вы немного хакер...
http://slacy.com/blog/2010/07/using-djangos-widthratio-template-tag-for-multiplication-division/
для вычисления A * B: {% widthratio A 1 B%}
для вычисления A/B: {% widthratio A B 1%}
для вычисления A ^ 2: {% widthratio A 1 A%}
для вычисления (A + B) ^ 2: {% widthratio A | добавить: B 1 A | добавить: B%}
для вычисления (A + B) * (C + D): {% widthratio A | добавить: B 1 C | добавить: D%}
Также вы можете создать фильтр для деления за 2 минуты
Использование настраиваемого фильтра:
register = template.Library()
@register.filter
def divide(value, arg):
try:
return int(value) / int(arg)
except (ValueError, ZeroDivisionError):
return None
Я бы использовал пользовательский шаблон, но если вы не хотите, чтобы вы использовали встроенный тег ширины,
{% widthratio request.session.get_expiry_age 3600 1 %}
Другой пример
{% widthratio value 1150000 100 %}
Синтаксис:
{% widthratio parm1 parm2 parm3 %}
Таким образом, в основном он используется для масштабирования изображений, но вы можете использовать его для разделения. Что он делает: parm1/parm2 * parm3.
Надеюсь, что это поможет, больше на widthratio здесь.
Отъезд http://djangosnippets.org/snippets/2424/
Надеюсь, что это поможет тебе.
Существует модуль Python для выполнения математических операций в ваших шаблонах: Django-Mathfilters.
Он содержит add
, как вы сказали, но также div
для разделения:
8 / 3 = {{ 8|div:3 }}