Saltar al contenido

Plantilla de Django – Incrementar el valor de una variable

Solución:

No se recomienda cambiar el estado de un objeto en una plantilla de Django. Probablemente debería morder la viñeta, calcular la condición de antemano y pasar un estado adicional a la plantilla para que pueda simplificar la lógica de la plantilla.

Por cierto, no soy un purista en este sentido, pero algunas veces me han mordido las limitaciones intencionadas de las plantillas de Django. Es mejor que no luches contra eso, en mi opinión.

Dado que su intención parece ser filtrar los elementos que no coinciden, una alternativa sería filtrar aquellos en la vista y luego usar {{ forloop.counter }} para ordenar el texto del enlace que desee. Entonces en la vista tienes algo como esto:

new_lst = filter(lambda x: x.attr0 == attr0 and x.attr1 == attr1, lst)

Y luego, en tu plantilla:

{% for object in new_lst %}
   <li><a href="https://foroayuda.es/{{ object.get_absolute_url }}"> Link {{ forloop.counter }} </a></li>
{% endfor %}

Aunque esto ha sido respondido y va en contra de lo que se ha dicho, solo tuve un pensamiento y no veo mucho daño si tal vez hiciste una clase de contador simple como

class Counter:
    count = 0

    def increment(self):
        self.count += 1
        return ''

    def decrement(self):
        self.count -= 1
        return ''

    def double(self):
        self.count *= 2
        return ''

luego en tu plantilla {{ counter.increment }} {{ counter.count }} etc.

Para aumentar el valor en la plantilla django: si varint = 6, el resultado será 8

{{ varint|add:"2" }}

Para disminuir el valor en la plantilla django:

si varint = 6, el resultado será 5

  {{ varint|add:"-1" }}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *