Aquí hay un extracto de una plantilla de Django:
<div id="list-of-things"> {% for key in things %} {% for thing in thing|get_dict_value:key %} <div id="thing-{{ count }}">{{key}}: {{ thing }}</div> {% endfor %} {% endfor %} </div> things es un dict y get_dict_value:key es simplemente thing[key] . Lo que se necesita en la página final es:
<div id="thing-1">A: First thing</div> <div id="thing-2">A: Second thing</div> <div id="thing-3">B: Third thing</div> ... ... lo que significa que necesito alguna forma de alterar la variable de count . El uso de forloop.counter aquí hace que haya valores duplicados ya que el contador se reinicia cada vez que pasa por el bucle externo.
No parece haber ninguna forma de establecer una variable en este ciclo, entonces, ¿hay algún otro medio por el cual el count pueda incrementarse según sea necesario?
Aquí hay algo que puedes hacer
en las vistas
import itertools counter = itertools.count() # pass `counter` to the templateen la plantilla
{{counter.next}}para mostrar e incrementar el contador independientemente del bucle en el que se encuentre.