Я хочу ограничить количество цифр в числах, превышающих 1 на 2 цифры. Я хочу узнать, есть ли короткий синтаксис, чтобы упростить код с 5 строк до одного лайнера, и извлечь уроки из вашего опыта.

Ожидаемый результат:

   100.00 , 10.00 , 1.00 , 0.00000001

Рабочий код

   {% if number > 1 %}
     {{ number | floatformat:2 }}
   {% else %}
     {{ number }} 
   {% endif %}

Я ищу возможный синтаксис, подобный этому псевдокоду

   {{ number | if number > 1 floatformat:2  }}
0
scco 20 Май 2021 в 14:35

1 ответ

Лучший ответ

Вы можете сделать предложение if else в одной строке следующим образом:

{% if number > 1 %}{{ number | floatformat:2 }}{% else %}{{ number }}{% endif %}

Если вам нужно что-то нестандартное, вы можете создать собственный тег шаблона:

def custom_format(value):
    return "%.2f" % value if value > 1 else value

А затем в своем шаблоне вы можете использовать это так:

{{ number|custom_format }}

Подробнее о настраиваемых тегах шаблонов здесь и подробнее о встроенные теги шаблонов здесь.

1
Hagyn 20 Май 2021 в 13:05