Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Templatetags globales en nuestros proyectos Django

Los templatetags de Django son a nivel de aplicación. Sin embargo a veces nos gustaría que distintas aplicaciones compartieran templatetags ó evitarnos tener que cargarlos en todas las plantillas mediante {% load ... %}.

Este sencillo snippet muestra cómo registrar templatetags de modo global para todo el proyecto gracias a la función add_to_builtins de django.template.

Para crear templatetags globales haremos lo siguiente:

  1. Creamos un directorio en el que copiamos todos los templatetags que queramos utilizar de forma global (en sus archivos .py correspondientes). Por ejemplo un directorio globaltags/.

  2. Añadimos al directorio un archivo __init__.py en el que cargamos los templatetags que queramos a nivel global de la siguiente manera:

    from django.template import add_to_builtins
    
    add_to_builtins('globaltags.mi_template_tag_1')
    add_to_builtins('globaltags.mi_template_tag_2')
    
  3. Añadimos dicho directorio al setting INSTALLED_APPS como si se tratara de una aplicación más instalada en nuestro proyecto.

Siguiendo estos pasos podemos utilizar en cualquier plantilla los templatetags que hayamos registrado globalmente y sin tener que cargarlos mediante {% load ... %}.

Publicado por Antonio Melé el Tuesday 31 de March de 2009 Compártelo: Facebook: Twitter: | Categorías: snippets, templatetags, trucos

Entradas similares

Templatetag {% if %} con más comparaciones

Este snippet reemplaza la funcionalidad del templatetag {% if %} permitiendo realizar comparaciones con operadores >, <, >=, <=, != además de las comparaciones que permite hacer {% if %} por defecto. Por ...


Subdominios con Django

En ocasiones nos interesa trabajar con subdominios en nuestros proyectos Django. Para ello podemos utilizar un sencillo middleware para subdominios que podemos encontrar en ...


 
Snippet de vista para i18n

Una de las cosas que nos ofrece Django es vistas genéricas y soporte para localización (aka i10n) e internacionalización (aka i18n). Entonces una vez ...


Expires headers lejanos y versiones de media

Un buen truco para mejorar el tiempo de carga de nuestras páginas es añadir a los archivos de media (imágenes, css, js) el header ...


 
 

1 comentario:

El Friday 27 de November de 2009 pedro dijo:

Que tal Antonio. Buena info esta, me ahorraste de copiar/pegar como quichimil templatetags xDDD.
Saludos.
PD: estoy buscando cómo hacer para pasar varios parámetros a un templatetag, no lo consigo aún.

Escribe un comentario: