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 № 1Hay 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
},
},
},
]