Manuel Rosa Ramos 31 de julio de 2015 a las 13.58
   Imprimir artículo
elWebmaster.com

Creando etiquetas y filtros de plantillas en Django Framework


logoooooEl lenguaje o sistema de plantillas de Django trae incorporado gran variedad de etiquetas y filtros 煤tiles para la organizaci贸n y presentaci贸n de las p谩ginas del sitio que estamos creando, y que est谩n dise帽ados para atender y simplificar la l贸gica de presentaci贸n del sitio, teniendo como resultado c贸digos muy simples y entendibles.

Recordemos en primera instancia de qu茅 se tratan los objetos involucrados en este post: templates, tags, filters.

Una plantilla (template) es simplemente un archivo de texto que puede generar como respuesta alg煤n formato como HTML, XML, CSV, entre otros.

Una etiqueta (tag) permiten controlar la l贸gica de presentaci贸n en las plantillas que estemos dise帽ando. estas pueden ser para representar variables 鈥 {{聽x }} 鈥 colocando su valor dentro del template cuando es renderizado, o para controlar el flujo por medio de iteraciones y condicionales 鈥 {% tag %} 鈥.

Un filtro (filter) es utilizado para modificar o dar formato en la presentaci贸n de las variables 鈥 {{ variable | filtro }} 鈥, como por ejemplo mostrar un string s贸lo con min煤sculas o may煤sculas, o dar formato a una fecha.

Puedes ver una lista de las etiquetas y filtros incorporados en Django aqu铆.

Adem谩s de 茅stos, podemos crear etiquetas y filtros personalizados para dar respuesta a una necesidad espec铆fica que tengamos en alg煤n momento determinado. A continuaci贸n,聽聽veremos un ejemplo de cada una.

Primero, dentro de la carpeta del proyecto – al mismo nivel de nuestros archivos model.py y views.py – creamos un paquete de python llamado 鈥渢emplatetags鈥, esto es, una carpeta con el nombre del paquete a crear y dentro un archivo __init__.py

Agregamos dentro de 鈥渢emplatetags鈥 un nuevo archivo de python que llamaremos 鈥渃ustom_filters.py鈥 que incluir谩 nuestra etiqueta y filtro personalizado.

Importaremos el m贸dulo 鈥渢emplate鈥 del paquete Django para instanciar un objeto de la Clase Library, y procedemos a crear los dos m茅todos, uno con el decorador @register.simple_tag que ser谩 la etiqueta personalizada que utilizaremos, y el otro para el filtro con el decorador @register.filter

register

El m茅todo para la etiqueta, llamado 鈥渇echa_actual鈥, simplemente devolver谩聽la fecha actual, y el m茅todo 鈥渄ollar鈥 se trata de colocar el s铆mbolo de d贸lar para un valor num茅rico.

Luego, para la llamada del template, hemos creado una clase en el archivo 鈥渧iews.py鈥 llamada TagFilterView, como sigue:

vista

Y finalmente, en el template 鈥渢ag_filter.html鈥 colocamos un c贸digo como el que sigue para incluir el uso de ambos:

template

Y con esto hemos creado la etiqueta y el filtro. Para el caso del filtro se colocaron dos ejemplos, el primero con un filtro incorporado en Django para mostrar el n煤mero con dos decimales y el segundo combinando ese filtro con el filtro personalizado.

Finalmente, obtenemos un resultado como el siguiente:

resultado

No olvides agregar una url para acceder a la vista TagFilterView, y contar previamente con el template 鈥渂ase.html鈥

Estos son ejemplos muy b谩sicos, pero han de servirte para empezar a crear tus propios filtros y etiquetas para organizar mejor el c贸digo de tu sitio web.


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder