{% extends "base.html" %} {% block content %} {% load pytils_numeral %}
Для загрузки компоненты, в шаблон вставьте код:
{% templatetag openblock %} load pytils_numeral {% templatetag closeblock %}
Для наглядности, текст подставленный фильтром выделен курсивом.
Выбор нужной формы множественного числа. Классический пример с количеством комментариев: {{ params.comment_number }} {{ params.comment_number|choose_plural:params.comment_variants }}
В качестве аргумента можно передавать не только список вариантов, но и варианты в одну строку, например: так {{ params.comment_number }} комментари{{ params.comment_number|choose_plural:"й,я,ев" }} или так {{ params.comment_number }} {{ params.comment_number|choose_plural:"комментарий, комментария, комментариев" }} - как Вам больше нравится.
Сделано это так:
<p>Выбор нужной формы множественного числа. Классический пример с количеством
комментариев: {% templatetag openvariable %} params.comment_number {% templatetag closevariable %}
<em>{% templatetag openvariable %} params.comment_number|choose_plural:params.comment_variants {% templatetag closevariable %}</em>
</p>
<p>В качестве аргумента можно передавать не только список вариантов, но и
варианты в одну строку, например: так {% templatetag openvariable %} params.comment_number {% templatetag closevariable %}
комментари<em>{% templatetag openvariable %} params.comment_number|choose_plural:"й,я,ев" {% templatetag closevariable %}</em> или так
{% templatetag openvariable %} params.comment_number {% templatetag closevariable %}
<em>{% templatetag openvariable %} params.comment_number|choose_plural:"комментарий, комментария, комментариев" {% templatetag closevariable %}</em>
- как Вам больше нравится.</p>
Если включен режим PYTILS_SHOW_VALUES_ON_ERROR
, то при ошибке отображается
первый вариант либо пустая строка (если получить первый вариант не
получилось).
Рубли словами. К примеру, {{ params.rubles_value }} р. словами будет {{ params.rubles_value|rubles }}. У этого фильтра есть один
параметр, определяющий, нужно ли нулевые копейки "проговаривать". Если нужно - то True, по умолчанию rubles
этого не делает.
Пример: {{ params.rubles_value2 }} р. словами будет {{ params.rubles_value2|rubles }}, а с копейками -
{{ params.rubles_value2|rubles:"True" }}.
В шаблоне этот фрагмент записан так:
<p>Рубли словами. К примеру, {% templatetag openvariable %} params.rubles_value {% templatetag closevariable %} р. словами будет
<em>{% templatetag openvariable %} params.rubles_value|rubles {% templatetag closevariable %}</em>.
У этого фильтра есть один параметр, определяющий, нужно ли нулевые копейки "проговаривать". Если нужно -
то True, по умолчанию <code>rubles</code> этого не делает. Пример: {% templatetag openvariable %} params.rubles_value2 {% templatetag closevariable %} р.
словами будет <em>{% templatetag openvariable %} params.rubles_value2|rubles {% templatetag closevariable %}</em>, а с копейками -
<em>{% templatetag openvariable %} params.rubles_value2|rubles:"True" {% templatetag closevariable %}</em>.</p>
Если включен режим PYTILS_SHOW_VALUES_ON_ERROR
, то при ошибке отображается
просто число.
Число словами. Можно целые, можно дробные. Примеры: {{ params.int_value }} - {{ params.int_value|in_words }}. У целых можно менять пол (по умолчанию - мужской, MALE): {{ params.int_value|in_words:"FEMALE" }} (женский), {{ params.int_value|in_words:"NEUTER" }} (средний).
У дробных почти то же самое, только пол всегда женский и не меняется (т.е. параметр передавать можно, но он не будет влиять). {{ params.float_value }} словами будет {{ params.float_value|in_words }}.
В коде это так:
<p>Число словами. Можно целые, можно дробные. Примеры: {% templatetag openvariable %} params.int_value {% templatetag closevariable %} -
<em>{% templatetag openvariable %} params.int_value|in_words {% templatetag closevariable %}</em>. У целых можно менять пол (по умолчанию -
мужской, MALE): <em>{% templatetag openvariable %} params.int_value|in_words:"FEMALE" {% templatetag closevariable %}</em> (женский),
<em>{% templatetag openvariable %} params.int_value|in_words:"NEUTER" {% templatetag closevariable %}</em> (средний).</p>
<p>У дробных почти то же самое, только пол всегда женский и не меняется (т.е.
параметр передавать можно, но он не будет влиять). {% templatetag openvariable %} params.float_value {% templatetag closevariable %}
словами будет <em>{% templatetag openvariable %} params.float_value|in_words {% templatetag closevariable %}</em>.</p>
Если включен режим PYTILS_SHOW_VALUES_ON_ERROR
, то при ошибке отображается
просто число.
Пока только один.
Наиболее общая функция для работы с числами. Умеет "проговаривать" числа и одновременно подставлять название объекта в нужной форме. Например, вместо {{ params.comment_number }} комментарий(ев) можно смело писать {% sum_string params.comment_number params.comment_gender params.comment_variants %}
В коде это реализовано так:
<p>Наиболее общая функция для работы с числами. Умеет "проговаривать" числа и
одновременно подставлять название объекта в нужной форме. Например, вместо
{% templatetag openvariable %} params.comment_number {% templatetag closevariable %} комментарий(ев) можно смело писать
<em>{% templatetag openblock %} sum_string params.comment_number params.comment_gender params.comment_variants {% templatetag closeblock %}</em>
</p>
Если включен режим PYTILS_SHOW_VALUES_ON_ERROR
, то при ошибке отображается
просто число (без названия объекта).