Шаблонные теги против пользовательских тегов шаблонов и фильтра в django - PullRequest
1 голос
/ 10 января 2020

В чем разница между тегами-шаблонами, такими как simple_tag против тега тега templatetag? . Чтобы лучше сформулировать мой вопрос, templatetag используется для пользовательских тегов и фильтров шаблонов или он предназначен для другой цели полностью?

1 Ответ

0 голосов
/ 10 января 2020

прежний templatetag используется для создания пользовательских функций, которые можно загружать и вызывать в шаблоне. Это полезно, когда у вас есть общая задача, которую нужно выполнить, например, создать URL-адрес, который включает строку запроса, когда задано только пространство имен:

from django import template
from django.urls import reverse
from urllib.parse import urlencode

register = template.Library()

@register.simple_tag(takes_context=True)
def url_qs(context, namespace):
    url = reverse(namespace)
    return url + '?' + urlencode(context['querystring'])

последний templatetag используется для экранирования символов, которые обработчик шаблонов Django будет интерпретировать как специальный символ, например. двойные скобки {{. Эта версия шаблона тега в основном бесполезна, так как вы можете просто использовать HTML escape-коды .

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

{% templatetag openvariable %}

Или с помощью escape-кодов:

{{
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...