template safe length ifequal dirs bootstrap django django-templates

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.