Django: Introducción a los templatetags.

Django: Introducción a los templatetags.

Aprenderlos no es tan dificil como parece. Django tiene tags pre-construidos que los usamos en nuestras aplicaciones. Crear los nuestros nos ayudará a mejorar nuestras vistas.


Uso de tags en plantillas

El sistema de plantillas de django viene con una variedad de tags ya diseñados para usarlos en nuestras plantillas html.

  • {% for %} {% endfor %}
  • {% if %} {% endif %}
  • {% block %} {% endblock %}

De otra forma podemos extender la funcionalidad creando los nuestros y usarlos para diferente propósito. Empezamos.


Simple tags

django.template.Library.simple_tag()

Es el más sencillo de usar. Su uso se limita a realizar una sencilla acción y mostrar su resultado, con un mensaje en pantalla.

from django import template

register = template.Library()

@register.simple_tag
def saludar_usuario(username):
    return 'hola ' + username + ' desde un templatetags'

Inclusion tags

django.template.Library.inclusion_tag()

Su diferencia se basa en que podemos utilizar plantillas html. Así es. Puedes pintar un bloque html dentro de tu vista html. Para eso se requiere de dos cosas: la función y la vista. En el siguiente ejemplo muestra los usuarios existentes.

from django import template
from django.contrib.auth.models import User

register = template.Library()

@register.inclusion_tag('lista_usuarios.html')
def lista_de_usuarios():
    usuarios = User.objects.all()
    return {'usuarios': usuarios}
<!-- lista_usuarios.html -->
<ul>
{% for usuario in usuarios %}
    <li> {{ usuario.username }} </li>
{% endfor %}
</ul>

Hay muchas mas opciones para cada una de ellas. Lo importante es conocerlas cada una para utilizarlas de la mejor manera.

En el siguiente post empezaremos a crear nuestros propios templatetags

Saludos.