
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
.
{{ comments.length }} comentarios