/ / Cargar una biblioteca de etiquetas de plantilla de Django para todas las vistas de forma predeterminada - django, django-templates

Cargue una biblioteca de etiquetas de plantilla Django para todas las vistas de forma predeterminada - django, django-templates

Tengo una pequeña biblioteca de templatetag relacionada con la tipografía que uso en casi todas las páginas. En este momento necesito cargarlo para cada plantilla usando

{% load nbsp %}

¿Hay una manera de cargarlo "globalmente" para todas las vistas y plantillas a la vez? Poner la etiqueta de carga en una plantilla base no funciona.

Respuestas

69 para la respuesta № 1

Hay un add_to_builtins método en django.template.loader. Simplemente pásale el nombre del módulo de templatetags (como una cadena).

from django.template.loader import add_to_builtins

add_to_builtins("myapp.templatetags.mytagslib")

Ahora mytagslib Está disponible automáticamente en cualquier plantilla.


29 para la respuesta № 2

Cambiará con la versión Django 1.9.

Desde 1.9, el enfoque correcto será configurar etiquetas de plantilla y filtros en builtins clave de OPTIONS - vea el ejemplo a continuación:

TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"builtins": ["myapp.builtins"],
},
},
]

Detalles: https://docs.djangoproject.com/en/dev/releases/1.9/#django-template-base-add-to-builtins-is-removed


27 para la respuesta № 3

En Django 1.7 solo reemplaza por from django.template.base import add_to_builtins


5 para la respuesta № 4

En Django 1.9 hay una libraries diccionario de etiquetas y rutas de Python de puntos de módulos de etiquetas de plantilla para registrar con el motor de plantillas. Esto se puede usar para agregar nuevas bibliotecas o proporcionar etiquetas alternativas para las existentes.

TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
"libraries": { # Adding this section should work around the issue.
"custom_tags" : "myapp.templatetags.custom_tags",#to add new tags module.
"i18n" : "myapp.templatetags.custom_i18n", #to replace exsiting tags modile
},
},
},
]