Header Image

Создание своих тегов в Django

Загружено/обновлено 14 Ноября 2016

Создание тега для включения в шаблон bootstrap

Создание функций тегов

Создаем в модуле templatetags новый файл, например с именем mytags.py. Данное имя затем будет использовано в шаблоне. Вот код файла.

from django import template
from django.utils.safestring import mark_safe

register = template.Library()

@register.simple_tag
def bootstrap_css():
    tags = [
          '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">',
          '<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>'
        ]

    return ''.join(tags)

Использование

В начале шаблона необходимо загрузить тег вот так: {% load mytags %}.

Развиваем тему bootstrap

@register.inclusion_tag('bootstrap_button.html')
def bootstrap_button(text, style="default"):
    return {
           'style': style.lower(),
         'text': text
    }            

Функция декоратора inclusion_tag принимает в качестве аргумента имя шаблона с html кодом. В папке template приложения или проекта создадим файл с имненм bootstrap_button.html. Вот его код:

<button type="button" class="btn btn-{{ style }}">{{ text }}</button>

Использовать тег следует следующим образом:

{% bootstrap_button "Click me!" %}

{% bootstrap_button "I'am in dager!" "danger" %}