Mi rendo conto che sto rispondendo a un thread precedente. Tuttavia, ho iniziato a utilizzare Jinja recentemente e ho riscontrato un problema simile: avevo bisogno di contare la quantità di righe stampate in cicli nidificati. La mia soluzione stava avvolgendo una variabile contatore in una classe e passando un'istanza al modello. Allo stesso modo, è possibile utilizzare una classe wrapper, in questo modo
class VoterStatus(object):
def __init__(self, status='active'):
self._status = status
def set_disabled(self):
self._status = 'disabled'
def __str__(self):
return self._status
modificare il modello di conseguenza
{% for voter in record.voters %}
{% if user == voter %}
{% status.set_disabled() %}
{% endif %}
{{ status }} # outputs: 'disabled'
{% endfor %}
passare un'istanza di classe di stato per il modello per il rendering:
tmplt.render(status=VoterStatus(), ...)
... e Bob è tuo zio.
fonte
2017-03-01 08:26:51
thx . Ho già revisionato il mio codice e ho fatto come mi hai suggerito all'inizio. –