Django repetir bloques HTML sin rangos

Una utilidad básica para crear bloques de HTML que se repitan es usar rangos. Lo incómodo es que deben ser declaradas como una variable de contexto o directamente definidas al renderizar el HTML. ¿Existe algún truco para duplicar de forma independiente elementos HTML usando el sistema de plantillas de Django? La respuesta es un rotundo sí.

Pongamos un caso real que me encontré hace poco. Había que clonar una estrella en 5 ocasiones para un desplegable de valoración. El código que utilicé es el siguiente:


{% with ''|center:5 as range %}
    {% for _ in range %}
        <span>⭐</span>
    {% endfor %}
{% endwith %}

Se define un falso rango usando el filtro center, te invito a leer en la documentación como funciona, y se define una variable llamada range. Lo siguiente es iterar con un sencillo for.

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

You can use the terminal.

ssh customer@andros.dev -p 5555

Written by Andros Fenollosa

July 18, 2022

1 min of reading

You may also like