Подтвердить что ты не робот

Есть ли фильтр для разделения для шаблона Django?

Я заметил, что есть встроенный фильтр add, но я не смог найти divide.

Я новичок в Django и не уверен, есть ли такой фильтр.

4b9b3361

Ответ 1

Нет. Но если вы немного хакер...

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 минуты

Ответ 2

Использование настраиваемого фильтра:

register = template.Library()

@register.filter
def divide(value, arg):
    try:
        return int(value) / int(arg)
    except (ValueError, ZeroDivisionError):
        return None

Ответ 3

Я бы использовал пользовательский шаблон, но если вы не хотите, чтобы вы использовали встроенный тег ширины,

{% widthratio request.session.get_expiry_age 3600 1 %} 

Другой пример

{% widthratio value 1150000 100 %}

Синтаксис:

{% widthratio parm1 parm2 parm3 %}

Таким образом, в основном он используется для масштабирования изображений, но вы можете использовать его для разделения. Что он делает: parm1/parm2 * parm3.

Надеюсь, что это поможет, больше на widthratio здесь.

Ответ 5

Существует модуль Python для выполнения математических операций в ваших шаблонах: Django-Mathfilters.

Он содержит add, как вы сказали, но также div для разделения:

 8 / 3 = {{ 8|div:3 }}