Crear template tags en django

JP Juan Pablo Romero Juan Pablo Romero

Juan Pablo Romero

Software Engineer
1 min read.

Esta es una entrada un tanto básica, pero, muchas veces hemos estado en esas situaciones donde tenemos un problema por algo que al final termina siendo fácil de hacer.

Los template tags son como los tags que usamos del sistema de plantillas de django, la idea con los template tags es ampliar la funcionalidad de este framework con tags personalizadas.

Lo primero que tenemos que hacer es tener un paquete de python en el proyecto donde tener los modulos que contendran nuestros template tags, usualmente este folder tiene como nombre “templatetags” y como cualquier paquete python tiene un archivo __init__.py en su interior.

Los template tags se escriben en módulos python, en estos módulos python escribimos la lógica del nuevo tag.

Al crear un template tag se necesita importar el modulo template del paquete django, esto se hace con la siguiente linea:

https://gist.github.com/367012... Después de eso tenemos que instanciar un objeto de de la clase Library que se encuentra en el modulo template:

https://gist.github.com/367013... Ahora lo que necesitamos es un decorador que indica que lo que estamos por hacer es escribir un simple_tag:

https://gist.github.com/367015... Los template tags son funciones y en estas funciones se especifica la lógica de los template tags, en este ejemplo se elabora un template tag que consulta el nombre del sitio django que esta por default:

https://gist.github.com/367015... La explicación del código anterior seria la siguiente:
Se crea la función con nombre get_hostname este nombre es el nombre del template tag que después sera llamado desde un template.Se declara una variable con nombre current_site a la que se le asigna el resultado que nos trae la consulta Site.objects.get_current(), lo que hace esto es obtener objeto del sitio django que esta por defecto.Por ultimo se retorna el nombre de dominioEl código completo quedaría algo así:

https://gist.github.com/367018... Para usar nuestro template tag se cargaria el modulo python desde el template, esto se haría con la siguiente linea.

https://gist.github.com/367018... Finalmente se llama directamente la función con la siguiente sintaxis

https://gist.github.com/367018... Esta practica es muy útil cuando las tags definidas por el framework no resultan algo limitadas en algunos casos.


Written by Juan Pablo Romero

JP Juan Pablo Romero Juan Pablo Romero

Juan Pablo designs and builds robust software solutions with a focus on performance and usability. His problem-solving skills and attention to detail ensure high-quality and efficient applications.

Newsletter

Subscribe to our newsletter:

Read more

TestFlight una herramienta para iOS

Una herramienta muy útil para compartir nuestras aplicaciones para tester es  testFligh (https://testflightapp.com), esta her...

· 2 min read.

Build Once. Own Forever.