Django template tags
Цей пост - моя шпаргалка з шаблонних тегів і фільтрів Django.
1. Шаблонні теги
1.1. Блоки:
{% extends %} {% include template_name %} {{ block.super }} - вміст блоку {% ssi %} - включення іншого файлу за абсолютним шляхом {% ssi ... parsed %} - якщо потрібна обробка файлу у контексті шаблона (!ALLOWED_INCLUDE_ROOTS required)
1.2. Теги:
{% load my_template_tag %} {% templatetag %} - замість екранування ({%, %}, {{, }}, {, }, {#, #}) {% with object.item.count as count %} ... {% endwith %}
1.3. Розгалуження:
{% if %} {% else %} {% endif %} {% ifequal %} {% endifequal %} {% ifnotequal %} {% endifnotequal %}
1.4. Цикли:
{% for %} {% endfor %} Зворотний порядок: {% for a in b reversed %} {% endfor %} Список, що містить списки: {% for x,y in points %} {% endfor %} Якщо список порожній: {% for %} {% empty %} {% endfor %} Чи змінилось значення: {% for %} {% ifchanged %} {% else %} {% endifchanged %} {% endfor %} Змінна forloop forloop.counter forloop.counter0 forloop.revcounter forloop.revcounter0 forloop.first - True for firsy item forloop.last forloop.parentloop - посилання на зовнішній forloop
1.5. Форматування:
{% autoescape on|off %}...{{% autoescape %}} {% cycle 'row1' 'row2' a b 'row10'... %} {% cycle 'row1' 'row2' a b 'row10'... as rows %} {% cycle rows %} {% spaceless %} - видалення пробілів {% url %} - зворотний reverse {% widthratio this_val max_val 100 %} - this_val / max_val * 100 {% filter force_escape|lover %} {% endfilter %} {% firstof a b c ... %} - перша Not False {% now "jS o\f F" %} {% regroup %} - перегрупування на загальним атрибутом {% regroup people by gender as gender_list %} {% for gender in gender_list %} {% for item in gender.list %} {% endfor %} {% endfor %}
1.6. Додатково:
{# comment #} {% comment %} {% endcomment %} {% debug %} - вивід відлагоджувальної інформації {% csrf_token %}
2. Шаблонні фільтри
2.1. Форматування:
{{ name|lower }} - у нижній регістр {{ name|upper }} {{ names|truncatewords:"30" }} - тільки перші 30 слів {{ names|addslashes }} {{ text|addslashes }} - add slashes before quotes {{ text|capfirst }} - перший символ у верхній регістр {{ text|cut:" " }} - видаляє символи {{ value|date:"D d M Y" }} {{ value|default:"nothing" }} {{ value|default_if_none:"nothing" }} {{ value|center:"10" }} - "I am" -> " i am " {{ value|ljust:"10" }} {{ value|rjust:"10" }} {{ value|filesizeformat }} - 'humen-readable' filename {{ value|fix_ampersands }} - & -> & {{ value|floatformat }} - 34, 34.2 {{ value|floatformat:3 }} - 34.000, 34,444 {{ value|floatformat:"-3" }} - 34, 34,444 {{ value|join:"/" }} {{ value|linebreaks }} ...\n... -> <p>...<br>...</p> {{ value|linebreaksbr }} ...\n... -> ...<br>... {{ value|pluralize }} - returns s if not 1 {{ value|removetags:"b span" }} - remove <b>,</b>,<span>,</span> {{ value|safe }} - not required filtering {{ value|slugify }} - Hello world -> Hello-world {{ value|striptags }} - remove html tags {{ value|time:"H" }} {{ value|tumesince:comment_date }} {{ value|timeuntil:from_date }} {{ value|title }} - my first post -> My First Post {{ value|truncatechars:9 }} - Joel is a slug -> Joel i... {{ value|truncatewords:2 }} - Joel is a slug -> Joel is ... {{ value|truncatewords_html:2 }} - <p> Joel is ... </p> {{ value|urlencode }} - example.org/foo?a=b&c=d -> example.org/foo%3Fa%3Db%26c%3Dd {{ value|urlize }} - www.....com -> <a href=""...>www.....com</a> {{ value|urlizetrunc:15 }} {{ value|wordwrap:5 }} - Joel is a slug -> Joel \n is a \n slug {{ value|yesno:"yeah,no,maybe" }} {{ value|divisibleby:2 }} - bool(value % 2 == 0)
2.2. Упорядкування:
{{ value|dictsort:"name" }} {{ value|dictsortreversed:"name" }} {{ list|first }} - the first item in the list {{ list|last }} {{ value|linenumbers }} one two ... -> 1. one 2. two ... {{ list|slice:"2" }} ['a', 'b', 'c'] -> ['a', 'b'] {{ value|unordered_list }}
2.2. Властивості:
{{ names|length }} {{ value|add:"2" }} {{ value|divisibley:"3" }} - Ділиться на 3 {{ value|langth_is:"4" }} {{ value|wordcount }}
3. Форматування дат
Для фільтрів Django:
|date:"F j, Y"
У дужках - для datetime:
datetime.datetime.strfdate(date, format)
a - a.m., p.m. A(p) - AM, PM b(a) - jan, feb, ... d - 01..31 D - Sun, Fri, ... f - 1, 2, 2:23, ..., 11:59 F(B) - January g(I) - 1..12 h G(H) - 0..23 h - 01..12 h H - 00..23 h i(M) - 00..59 m j - 1..31 l(A) - Friday L - True | False - високосний рік m - 01..12 month M - Jan, Feb, ... n - 1..12 month N - Jan., Feb., March, May, ... O - +0200 P - 1 a.m., 1:30 p.m., ..., midnight|noon r - Sat, 10 Feb 2012 s(S) - 00..59 S - st, nd, rd, th - закінчення для нора дня у місяці t - 28..31 - кількість днів у місяці T - EST, MDT - часовий пояс w - 0..6 - день тижня W(U) - 1..53 - номер тижня y - 0..99 - рік Y - 1999 z - 0..365 Z - -43200 ... 43200 - зміщення часового поясу у секундах
Licensed under CC BY-SA 3.0