Хостинг Django от «Джино»
Table of contents

Справочник по стандартным фильтрам

add

Добавляет аргумент к обрабатываемому значению.

Например:

{{ value|add:"2" }}

Если value равно 4, результатом действия фильтра будет 6.

Добавлено с 1.2.

Первым делом данный фильтр пытается привести оба значения к целым числам. Если это не удается, то выполняется обычное сложение. Для некоторых типов данных это удается (строки, списки и т.д.), для других нет. В случае неудачи результатом будет пустая строка.

Например, если мы применим фильтр:

{{ first|add:second }}

где first содержит список [1, 2, 3], а second — список [4, 5, 6], результатом будет список [1, 2, 3, 4, 5, 6].

Замечание

Имейте в виду, что если оба значения представляют собой строки, которые приводятся к целым числам, то будет выполнено сложение, а не конкатенация (см. первый пример).

addslashes

Добавляет слэши перед кавычками. В частности, полезно для экранирования строк в формате CSV.

Пример:

{{ value|addslashes }}

Если value равно I'm using Django, фильтр выведет I\'m using Django.

capfirst

Делает первый символ переменной заглавным.

Например:

{{ value|capfirst }}

Если value равно django, фильтр выведет Django.

center

Центрирует значение в поле данной ширины.

Например:

"{{ value|center:"15" }}"

Если value равно "Django", результатом действия фильтра будет " Django ".

cut

Удаляет все вхождения переданного аргумента из обрабатываемого значения.

Например:

{{ value|cut:" "}}

Если value равно "String with spaces", фильтр выведет "Stringwithspaces".

date

Форматирует дату в заданном формате.

Формат может быть задан предопределенными константами: DATE_FORMAT, DATETIME_FORMAT, SHORT_DATE_FORMAT либо SHORT_DATETIME_FORMAT, а также строкой формата (см. тег now). Имейте в виду, что действие предопределенных констант может зависить от локали.

Например:

{{ value|date:"D d M Y" }}

Если value является объектом datetime (т.е. результатом функции datetime.datetime.now()), фильтр выведет 'Wed 09 Jan 2008'.

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

Допустим, параметр USE_L10N равен True, а LANGUAGE_CODE, например, "es", тогда результатом действия фильтра:

{{ value|date:"SHORT_DATE_FORMAT" }}

будет строка "09/01/2008" (т.к. "SHORT_DATE_FORMAT" в локали es использует строку формата "d/m/Y").

Если формат не указан:

{{ value|date }}

то будет использована строка формата, определенная в параметре DATE_FORMAT, без учета локализации.

Добавлено в 1.2.

Текущая локаль теперь влияет на предопределенные форматы.

default

Если значение вычисляется как False, выводит указанный аргумент как значение по умолчанию. В противном случае выводит само значение.

Например:

{{ value|default:"nothing" }}

Если value равно "" (пустая строка), фильтр выведет nothing.

default_if_none

Если (и только если) значение равно None, выводит указанный аргумент как значение по умолчанию. В противном случае выводит само значение.

Если значение является пустой строкой, аргумент по умолчанию не будет использован. Для замены пустых строк используйте фильтр default.

Например:

{{ value|default_if_none:"nothing" }}

Если value равно None, фильтр выведет строку "nothing".

dictsort

Принимает список словарей и возвращает список, отсортированный по ключу, указанному в качестве аргумента.

Например:

{{ value|dictsort:"name" }}

Если value является списком:

[
  {'name': 'zed', 'age': 19},
  {'name': 'amy', 'age': 22},
  {'name': 'joe', 'age': 31},
]

то такой фильтр вернет список:

[
  {'name': 'amy', 'age': 22},
  {'name': 'joe', 'age': 31},
  {'name': 'zed', 'age': 19},
]

dictsortreversed

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

divisibleby

Возвращает True, если значение делится на указанный аргумент.

Например:

{{ value|divisibleby:"3" }}

Если value равно 21, фильтр выведет True.

escape

Заменяет символы, используемые в HTML, на соответствующие HTML-сущности, а именно:

  • < заменяется на &lt;;

  • > заменяется на &gt;;

  • ' (одинарная кавычка) заменяется на &#39;;

  • " (двойная кавычка) заменяется на &quot;;

  • & заменяется на &amp;.

Замена производится непосредственно перед выводом результата, поэтому положение escape в цепочке фильтров не имеет значения: он всегда будет применен последним. Если порядок применения этого фильтра важен, используйте фильтр force_escape.

Применение фильтра escape к переменной, которая будет экранирована автоматически, в любом случае приведет к однократному экранированию. Таким образом, применение этого фильтра безопасно. Если требуется неоднократная замена HTML-символов, используйте фильтр force_escape.

Изменено в 1.0.

В связи с автоматическим экранированием поведение этого фильтра несколько изменено. Замены осуществляются только один раз, после применения всех имеющихся фильтров (расположенных как до, так и после данного фильтра).

escapejs

Добавлено в 1.0.

Экранирует символы для использования в JavaScript-строках. Этот фильтр не делает строку безопасной для HTML, а лишь защищает от синтаксических ошибок при генерации кода JavaScript/JSON.

Например:

{{ value|escapejs }}

Если value равно "testing\r\njavascript \'string" <b>escaping</b>", в результате получится "testing\\u000D\\u000Ajavascript \\u0027string\\u0022 \\u003Cb\\u003Eescaping\\u003C/b\\u003E".

filesizeformat

Форматирует значение в виде «человекопонятного» размера файла (т.е. 13 KB, 4.1 MB, 102 bytes, и т.п.).

Например:

{{ value|filesizeformat }}

Если value равно 123456789, фильтр выведет 117.7 MB.

first

Возвращает первый элемент списка.

Например:

{{ value|first }}

Если value содержит список ['a', 'b', 'c'], результатом действия фильтра будет 'a'.

fix_ampersands

Изменено с 1.0.

Используется редко, т.к. амперсанды экранируются автоматически. Подробнее см. escape.

Заменяет амперсанды на сущности &amp;.

Например:

{{ value|fix_ampersands }}

Если value равно Tom & Jerry, будет выведеноTom &amp; Jerry.

floatformat

При использовании без аргумента выводит дробное число с одним знаком после запятой — если имеется дробная часть. Например:

Таблица F.3. Без аргументов

valueШаблонВывод
34.23234{{ value|floatformat }}34.2
34.00000{{ value|floatformat }}34
34.26000{{ value|floatformat }}34.3


Если указан целочисленный положительный аргумент, floatformat округляет число до указанного числа знаков после запятой и выводит их все. Например:

Таблица F.4. Положительный аргумент

valueШаблонВывод
34.23234{{ value|floatformat:3 }}34.232
34.00000{{ value|floatformat:3 }}34.000
34.26000{{ value|floatformat:3 }}34.260


Если аргумент отрицательный, то floatformat округляет число до указанного числа знаков после запятой и выводит их все, если имеется дробная часть. Например:

Таблица F.5. Отрицательный аргумент

valueШаблонВывод
34.23234{{ value|floatformat:-3 }}34.232
34.00000{{ value|floatformat:-3 }}34
34.26000{{ value|floatformat:-3 }}34.260


Вызов floatformat без аргумента эквивалентен вызову с аргументом -1.

force_escape

Добавлено с 1.0.

Экранирует HTML-символы в строке (подробнее см. описание фильтра escape). Применяется немедленно и возвращает новую, экранированную строку, что полезно в тех редких случаях, кога требуется неоднократное экранирование или применение ряда фильтров к уже экранированной строке. Обычно же достаточно фильтра escape.

get_digit

Принимая аргумент-число, возвращает цифру соответствующего порядка: последнюю цифру, если аргумент равен 1, предпоследнюю, если 2 и т.д. Если значение или аргумент не являются целыми числами или аргумент меньше 1, не производит никакого эффекта.

Например:

{{ value|get_digit:"2" }}

Если value равно 123456789, фильтр вернет 8.

iriencode

Преобразует IRI (Internationalized Resource Identifier) в строку, которую можно включить в URL. Это полезно в случае, если в предполагаемом адресе содержатся символы, не входящие в набор ASCII.

Применение этого фильтра для строк, пропущенных через фильтр urlencode, безопасно.

Например:

{{ value|iriencode }}

Если value равно "?test=1&me=2", результат будет "?test=1&amp;me=2".

join

Соединяет элементы списка в строку, используя аргумент как разделитель (аналогично Python-функции str.join(list)).

Например:

{{ value|join:" // " }}

Если value является списком ['a', 'b', 'c'], фильтр выведет строку "a // b // c".

last

Добавлено в 1.0.

Возвращает последний элемент списка.

Например:

{{ value|last }}

Если value является списком ['a', 'b', 'c', 'd'], фильтр выведет строку "d".

length

Возвращает длину переменной. Работает для как для строк, так и для списков.

Например:

{{ value|length }}

Если value является списком ['a', 'b', 'c', 'd'], фильтр выведет 4.

length_is

Возвращает True, если длина значения равна указанному аргументу, в противном случае возвращает False.

Например:

{{ value|length_is:"4" }}

Если value является списком ['a', 'b', 'c', 'd'], фильтр выведет True.

linebreaks

Заменяет переносы строк в простом тексте на соответствующий HTML; новая строка заменяется на тег <br />, а новая строка с последующей пустой строкой — тегом </p>.

Например:

{{ value|linebreaks }}

Если value равно Joel\nis a slug, фильтр выведет <p>Joel<br />is a slug</p>.

linebreaksbr

Преобразует все переносы строк в тег <br />.

Например:

{{ value|linebreaksbr }}

Если value равно Joel\nis a slug, фильтр выведет Joel<br />is a slug.

linenumbers

Выводит текст с номерами строк.

Например:

{{ value|linenumbers }}

Если value равно:

one
two
three

фильтр выведет:

1. one
2. two
3. three

ljust

Выравнивает текст влево в поле заданной ширины. Аргумент: ширина поля.

Например:

"{{ value|ljust:"10" }}"

Если value равно Django, результат будет "Django ".

lower

Приводит строку к нижнему регистру.

Например:

{{ value|lower }}

Если value равно Still MAD At Yoko, фильтр выведет still mad at yoko.

make_list

Возвращает список, полученный из значения обрабатываемой переменной. Целое число будет преобразовано в список цифр, строка — в список букв.

Например:

{{ value|make_list }}

Если value является строкой "Joel", результатом будет список [u'J', u'o', u'e', u'l']. Если value является числом 123, результатом будет список [1, 2, 3].

phone2numeric

Преобразует телефонный номер (в т.ч. содержащий буквы) в числовой формат.

Входное значение не проверяется на правильность формата — любая строка будет преобразована.

Например:

{{ value|phone2numeric }}

Если value равно 800-COLLECT, фильтр вернет 800-2655328.

pluralize

Возвращает окончание множественного числа, если значение не равно 1. По умолчанию используется окончание 's'.

Пример:

You have {{ num_messages }} message{{ num_messages|pluralize }}.

Если num_messages равно 1, фильтр выведет You have 1 message.

Если num_messages равно 2, фильтр выведет You have 2 messages.

Если множественное число требует другого окончания (не 's'), укажите его в качестве аргумента фильтра.

Пример:

You have {{ num_walruses }} walrus{{ num_walruses|pluralize:"es" }}.

Если множественное число изменяет окончание слова, укажите через запятую окончание единственного числа и окончание множественного числа (фильтр заменит первое на второе).

Пример:

You have {{ num_cherries }} cherr{{ num_cherries|pluralize:"y,ies" }}.

pprint

Обёртка для функции pprint.pprint — применяется для отладки.

random

Возвращает случайный элемент в списке.

Например:

{{ value|random }}

Если value является списком ['a', 'b', 'c', 'd'], результатом может быть "b".

removetags

Удаляет [X]HTML-теги, перечисленные в строке-аргументе через пробел.

Например:

{{ value|removetags:"b span"|safe }}

Если value равно "<b>Joel</b> <button>is</button> a <span>slug</span>", фильтр выведет "Joel <button>is</button> a slug".

rjust

Выравнивает текст вправо в поле заданной ширины. Аргумент: ширина поля.

Например:

"{{ value|rjust:"10" }}"

Если value равно Django, фильтр выведет " Django".

safe

Строка, отмеченная этим фильтром, не будет экранирована перед выводом. Если автоматическое экранирование отключено, эффекта не имеет.

safeseq

Применяет фильтр safe к каждому элементу последовательности. Полезно при использовании других фильтров, воздействующих на последовательности, таких как join. Например:

{{ some_list|safeseq|join:", " }}

В этом случае нельзя использовать фильтр safe, т.к. он вначале превратит переменную в строку, а не пометит каждый элемент последовательности.

slice

Возвращает срез списка.

Используется синтаксис Python для срезов. Ознакомиться с ним можно на странице http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice.

Пример:

{{ some_list|slice:":2" }}

Если some_list равно ['a', 'b', 'c'], фильтр выведет ['a', 'b'].

slugify

Приводит переменную к нижнему регистру, оставляет только буквы, цифры и символы подчеркивания, затем преобразует пробелы в дефисы. Начальные и завершающие пробелы удаляются.

Например:

{{ value|slugify }}

Если value равно "Joel is a slug", фильтр выведет "joel-is-a-slug".

stringformat

Форматирует переменную в соответствии с переданным аргументом, представляющим собой спецификатор формата. В спецификаторе используется синтаксис Python для строк формата, за исключением служебного символа «%».

Документацию по форматированию строк в Python см. на http://docs.python.org/library/stdtypes.html#string-formatting-operations

Например:

{{ value|stringformat:"s" }}

Если value равно "Joel is a slug", фильтр выведет "Joel is a slug".

striptags

Удаляет все [X]HTML-теги.

Например:

{{ value|striptags }}

Если value равно "<b>Joel</b> <button>is</button> a <span>slug</span>", фильтр вернет "Joel is a slug".

time

Выводит время в указанном формате.

Формат может быт задан преопределенной константой TIME_FORMAT (зависит от локальных настроек) либо пользовательским форматом (см. тег now).

По понятным причинам данный фильтр принимает только формат, определяющий вывод времени, а не даты. Для вывода даты используйте фильтр date.

Например:

{{ value|time:"H:i" }}

Если value эквивалентно datetime.datetime.now(), фильтр выведет строку "01:23".

Еще один пример:

Допустим, параметр USE_L10N равен True, а LANGUAGE_CODE, например, "de", тогда результатом фильтра:

{{ value|date:"TIME_FORMAT" }}

будет строка "01:23:00" (т.к. "TIME_FORMAT" в локали de использует строку формата "H:i:s").

Если формат не указан:

{{ value|date }}

то будет использована строка формата, определенная в параметре TIME_FORMAT, без учета локализации.

Добавлено в 1.2.

Текущая локаль теперь влияет на предопределенные форматы.

timesince

Форматирует дату в виде периода времени, прошедшего с того момента (например, «4 days, 6 hours»).

Принимает необязательный аргумент, содержащий дату окончания периода (без этого аргумента окончанием периода считается сейчас). Например, если blog_date содержит дату, указывающую на полночь 1 июня 2006 года, а comment_date указывает на 08:00 1 июня 2006 года, то {{ blog_date|timesince:comment_date }} вернет «8 hours».

Сравнение дат, для одной из которых смещение указано, а для другой не указано, вернет пустую строку.

Результат округляется до целого числа полных минут. Если начальная дата периода позже конечной, результат будет «0 minutes».

timeuntil

Аналогично timesince, но вычисляет период до указанного момента. Например, если сегодня 1 июня 2006 года, а conference_date указывает на дату 29 июня 2006 года, то {{ conference_date|timeuntil }} вернет «4 weeks».

Принимает необязательный аргумент, содержащий дату начала периода (вместо сейчас). Например, если from_date указывает на 22 июня 2006, то {{ conference_date|timeuntil:from_date }} вернет «1 week».

Сравнение дат, для одной из которых смещение указано, а для другой не указано, вернет пустую строку.

Результат округляется до целого числа полных минут. Если конечная дата периода раньше начальной, результат будет «0 minutes».

title

Делает заглавными первые буквы слов в строке.

Например:

{{ value|title }}

Если value равно "my first post", фильтр выведет "My First Post".

truncatewords

Обрезает строку после указанного числа слов. Аргумент: Максимальное число выводимых слов.

Например:

{{ value|truncatewords:2 }}

Если value равно "Joel is a slug", фильтр выведет "Joel is ...".

truncatewords_html

Аналогично truncatewords, но с учетом HTML-тегов. Закрывает все теги, не закрытые к моменту усечения строки.

Работает медленнее, чем truncatewords, поэтому рекомендуется использовать только для обработки HTML-текстов.

Например:

{{ value|truncatewords_html:2 }}

Если value равно "<p>Joel is a slug</p>", фильтр выведет "<p>Joel is ...</p>".

unordered_list

Превращает список списков (любой вложенности) в HTML-список (БЕЗ обрамляющего тега <ul>).

Измененов в 1.0.

Добавлена поддержка более простого формата списка.

Список должен быть правильно сформирован. Например, если var содержит список ['States', ['Kansas', ['Lawrence', 'Topeka'], 'Illinois']], то {{ var|unordered_list }} вернет:

<li>States
  <ul>
    <li>Kansas
      <ul>
        <li>Lawrence</li>
        <li>Topeka</li>
      </ul>
    </li>
    <li>Illinois</li>
  </ul>
</li>

Примечание: поддержка предыдущего формата (более строгого, но точного) сохранена: ['States', [['Kansas', [['Lawrence', []], ['Topeka', []]]], ['Illinois', []]]].

upper

Приводит строку к верхнему регистру.

Например:

{{ value|upper }}

Если value равно "Joel is a slug", фильтр выведет "JOEL IS A SLUG".

urlencode

Экранирует строку для использования в адресе URL.

Например:

{{ value|urlencode }}

Если value является строкой "http://www.example.org/foo?a=b&c=d", фильтр вернет "http%3A//www.example.org/foo%3Fa%3Db%26c%3Dd".

urlize

Заменяет ссылки в обычном тексте на активные HTML-ссылки.

Имейте в виду, что применение фильтра urlize к тексту, в котором уже содежится HTML-разметка, может привести к неправильным результатам. Применяйте этот фильтр только к простому тексту.

Например:

{{ value|urlize }}

Если value является строкой "Check out www.djangoproject.com", результатом будет строка "Check out <a href="http://www.djangoproject.com">www.djangoproject.com</a>".

urlizetrunc

Заменяет ссылки в обычном тексте на активные HTML-ссылки, усекая их текст до указанного числа символов.

Как и urlize_, применяется только к простому тексту. Аргумент: Максимальная длина текста ссылки.

Например:

{{ value|urlizetrunc:15 }}

Если value является строкой "Check out www.djangoproject.com", результатом будет строка 'Check out <a href="http://www.djangoproject.com">www.djangopr...</a>'.

wordcount

Возвращает число слов.

Например:

{{ value|wordcount }}

Если value равно "Joel is a slug", фильтр выведет 4.

wordwrap

Переносит слова с учетом указанной длины строки. Аргумент: число, задающее длину строки.

Например:

{{ value|wordwrap:5 }}

Если value равно Joel is a slug, фильтр вернет:

Joel
is a
slug

yesno

Превращает значения true, false и (необязательно) None в соответствующую строку, указанную в аргументе:

Таблица F.6. Пример

ЗначениеАргументРезультат
Trueда, нет, может бытьда
Falseда, нет, может бытьнет
Noneда, нет, может бытьможет быть
Noneда, нетнет (если значение для None не указано, берёт строку для False)



Ищем Python программистов

Found misprint?
Select it with the mouse and hit Enter
Ctrl-Enter
Processed:
33 1 199 25


The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!

We are glad to hear your questions, comments or suggestions!
(Open in new tab)

Users number: 601

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
ЯМ:41001223475816


© 2008-2012 Ruslan Popov @ gmail.com Powered by Django 1.2.5