Tag: Templates Tag

django учитывать перевод строки

Опять отписываю в рубрику «Мои поисковые запросы» =) вот и придумал название ему.

Пришел ко мне еще такой вот поисковый запрос «django учитывать перевод строки»: есть два шаблонных тега Вам в помощь

linebreaks

Заменяет символы перевода строки в обычном тексте подходяцими html тегами. Одиночным символ перевода строки BR А символ перевода строки за которой идет пустая строка заменяет тегом P

linebreaksbr

Заменят еревод строк тегом BR

Наркомансое группирование по годам — Django

Вот нудно мне сгруппировать новости по году, поле храниться как datetime.date.today. Почему то захотелось по наркоманить и пойти не стандартным способом=) В общем получился python код =)

Запихал все в шаблонный тег, ну и вот, что получилось:

@register.simple_tag
def list_year():
    import itertools
    news = News.objects.filter(status=1)
    years = [str(item.creation_date.year) for item in news]
    dates = list(enumerate(years, start=1))
    result = [key for key,group in itertools.groupby(dates, key=lambda x: x[1][:11])]
    result_html = ''
    for item in result:
        result_html += 'За <a href="?year=%s">%s</a> год<br />' % (item, item)
    result_html += '<br />'
    return result_html

Шаблонные теги и фильты django

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

Шаблонные теги Django

{% firstof %}

{% firstof var1 var2 var3 %}
Эквивалентен
{% if var1 %}
{{ var1 }}
{% else %}{% if var2 %}
{{ var2 }}
{% else %}{% if var3 %}
{{ var3 }}
{% ensif %}
Если все значение False можно указать строковый литерал по умолчанию {% firstof var1 var2 var3 «not var» %}

{% for %}

forloop.counter — Текущая итерация с 1
forloop.counter0 — Текущая итерация с 0
forloop.revcounter — Количество оставшихся интераций до конца цикла с 1
forloop.revcounter0 — Количество оставшихся интераций до конца цикла с 0
forloop.first — True, если это первая итерация
forloop.last — True, если это последняя итерация

{% empty %} — отображаеться если массив пуст или не найтен в контексте

{% ifchanged %}

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

{% ifequal %}

Выводит содержимое блока если оба аргумента равны

{% ifnotequal %}

Аналогичен {% ifequal %}, но проверяет различие аргументов

Шаблонные фильтры


{% now %}

Выводит текущую дату

{% spaceless %}

Удаляет пробельные символы между html тегами (пробелы, табуляция, новая строка)

add

прибавляет агрумент к значению

{{ value|add:»2″ }}

addslashes

Вставляет символы слеша перед ковыяками

capfirst

Переводит первый символ в верхний регистр

center

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

cut

Удаляет все значения из заданной строки

date

Формирует дату согласно заданной строке формата

default

Если поданное на вход фильтра значение равно False, взять значение аргумента

{{ value|default:»papapa» }}

default_if_none

если (и только если) значение равно None, взять значение аргумента

dictsort

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

dictsortreversed

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

escape

экранирует html разметку

escapejs

Экранирует символыв строках, предназначенные в строках javascript

filesizeformat

предоставляет величину размера файла в привычном формате

first

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

fix_ampersands

заменяет символ эмперсанд компонентами &

floatformat

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

get_digit

Возвращает запрошенную цифру из заданного целого числа

join

Объединяет значения из заданного списка, разделяя их указанной строкой

last

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

length

Возвращает длину значения

length_is

Возвращает ТРУ если длина значения совпадает с аргументом

linebreaks

Заменяет символы перевода строки в обычном тексте подходяцими html тегами. Одиночным символ перевода строки BR А символ перевода строки за которой идет пустая строка заменяет тегом P

linebreaksbr

Заменят еревод строк тегом BR

linenumbers

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

ljust

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

в аргументе указываеться ширина

lower

Привести в нижний регистр

make_list

Возвращает значение, преобразованное в значение

pprint

применяеться для отладки

random

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

removetags

Удаляет перечисленный через запятую html — теги

rjust

Выравнивает значени по правому краю в поле заданной ширины
Аргумент — ширина поля

slice

Возвращает фрагмент списка (Синтакси Python) {{ value|slice:»:2″ }}

slugify

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

striptags

Удаляет все html теги

time

Формирует время согласно заданной строке формата

title

Возвращает строку где кажное сово начинается с заглавной буквы

truncatewords

Обрезает строку после заданного числа слов

truncatewords_html

аналогичен truncatewords но учитывает html теги

unordered_list

Принимает вложенный список и возвращает маркированный html список

upper

Преобразует строку в верхний регистр

urlencode

Экранирует значение для вставки в URL

urlize

Преобразует адреса URL из простого текста в гиперсылки

urlizetrunc

Преобразует адреса URL из простого текста в гиперсылки, обрезая длинные

wordcount

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

wordwrap

Разбивает строку по границам слов на количество (указанному в аргументе) слов в строке.