safe - Cargue una biblioteca de etiquetas de plantilla de Django para todas las vistas de manera predeterminada
templates dirs django (4)
Cambiará con la versión Django 1.9.
Desde 1.9, el enfoque correcto será configurar las etiquetas de plantilla y los filtros bajo la clave builtins
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
Tengo una pequeña biblioteca de plantillas tipográficas relacionadas que uso en casi todas las páginas. Ahora mismo necesito cargarlo para cada plantilla usando
{% load nbsp %}
¿Hay alguna manera de cargarlo "globalmente" para todas las vistas y plantillas a la vez? Poner la etiqueta de carga en una plantilla base no funciona.
En Django 1.9 hay un diccionario de libraries
de etiquetas y rutas de Python con puntos de módulos de etiquetas de plantilla para registrarse 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
},
},
},
]
En django 1.7 simplemente reemplace por from django.template.base import add_to_builtins
Hay un método django.template.loader
en django.template.loader
. Simplemente páselo por el nombre de tu módulo 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.