{% extends "base.html" %} {% block content %} {% load pytils_dt %}

pytils_dt filters demo

Для загрузки компоненты, в шаблон вставьте код:

{% templatetag openblock %} load pytils_dt {% templatetag closeblock %}

Фильтры

Для наглядности, текст подставленный фильтром выделен курсивом.

distance_of_time

Например, тест прошлого времени был {{ params.otime|distance_of_time }}. Если более точно, то {{ params.otime|distance_of_time:2 }}. Нужно ли еще более точно? Пожалуйста - это было {{ params.otime|distance_of_time:3 }}.

Точно так же (т.е. для Вас абсолютно прозрачно) и с будущим временем - следующий тест будет {{ params.ftime|distance_of_time }}.

distance_of_time умеет работать с обеими типами времени, представленных в Python: с datetime.datetime и time.time. Например, {{ params.fdate }} будет {{ params.fdate|distance_of_time }}.

Сделано это так:

<p>Например, тест прошлого времени был <em>{% templatetag openvariable %} params.otime|distance_of_time {% templatetag closevariable %}</em>.
Если более точно, то <em>{% templatetag openvariable %} params.otime|distance_of_time:2 {% templatetag closevariable %}</em>. Нужно ли еще
более точно? Пожалуйста - это было <em>{% templatetag openvariable %} params.otime|distance_of_time:3 {% templatetag closevariable %}</em>.
</p>

<p>Точно так же (т.е. для Вас абсолютно прозрачно) и с будущим временем -
следующий тест будет <em>{% templatetag openvariable %} params.ftime|distance_of_time {% templatetag closevariable %}</em>.</p>

<p><code>distance_of_time</code> умеет работать с обеими типами времени, 
представленных в Python: с <code>datetime.datetime</code> и <code>time.time</code>.
Например, {% templatetag openvariable %} params.fdate {% templatetag closevariable %} будет  <em>{% templatetag openvariable %} params.fdate|distance_of_time {% templatetag closevariable %}</em>.</p>

Если включен режим PYTILS_SHOW_VALUES_ON_ERROR, то при ошибке будет отображена разница во времени в секундах, либо пустая строка (если получить разницу не удалось).

ru_strftime

Тоже всё просто - используем обычный формат strftime, в котором %a, %A, %b, %B заменены на русские.

К примеру, текущая дата: {{ params.cdate|ru_strftime:"%d %B %Y, %A" }}.

Код таков:

<p>К примеру, текущая дата: <em>{% templatetag openvariable %} params.cdate|ru_strftime:"%d %B %Y, %A" {% templatetag closevariable %}</em>.</p>

Если включен режим PYTILS_SHOW_VALUES_ON_ERROR, то при ошибке будет отображена дата с использованием оригинального strftime (т.е. с английскими днями/месяцами), либо пустая строка (если strftime не получилось выполнить).

ru_strftime_inflected

Аналогично ru_strftime, только день склоняется. Т.е. текущий тест был выполнен в {{ params.cdate|ru_strftime_inflected:"%A, %d %B %Y" }}

В шаблоне запись такова:


<p>Аналогично <code>ru_strftime</code>, только день склоняется. Т.е. текущий тест был 
выполнен в <em>{% templatetag openvariable %} params.cdate|ru_strftime_inflected:"%A, %d %B %Y" {% templatetag closevariable %}</em>

Если включен режим PYTILS_SHOW_VALUES_ON_ERROR, то при ошибке будет отображена дата с использованием оригинального strftime (т.е. с английскими днями/месяцами), либо пустая строка (если strftime не получилось выполнить).

ru_strftime_preposition

Аналогично ru_strftime_inflected, только добавляется правильный предлог. Т.е. текущий тест был выполнен {{ params.cdate|ru_strftime_preposition:"%A, %d %B %Y" }}

В шаблоне запись такова:


<p>Аналогично <code>ru_strftime</code>, только добавляется правильный предлог. Т.е. текущий тест был 
выполнен <em>{% templatetag openvariable %} params.cdate|ru_strftime_preposition:"%A, %d %B %Y" {% templatetag closevariable %}</em>

Если включен режим PYTILS_SHOW_VALUES_ON_ERROR, то при ошибке будет отображена дата с использованием оригинального strftime (т.е. с английскими днями/месяцами), либо пустая строка (если strftime не получилось выполнить).

{% endblock %}