прежний 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-кодов:
{{