Zdaję sobie sprawę, że odpowiadam na stary wątek. Jednak ostatnio zacząłem używać Jinja i wpadłem na podobny problem: musiałem policzyć ilość wydrukowanych wierszy w zagnieżdżonych cyklach. Moim rozwiązaniem było zawijanie zmiennej licznika w klasie i przekazywanie instancji do szablonu. Podobnie, można użyć klasy otoki, tak jak
class VoterStatus(object):
def __init__(self, status='active'):
self._status = status
def set_disabled(self):
self._status = 'disabled'
def __str__(self):
return self._status
Modyfikacja szablonu odpowiednio
{% for voter in record.voters %}
{% if user == voter %}
{% status.set_disabled() %}
{% endif %}
{{ status }} # outputs: 'disabled'
{% endfor %}
Przepuścić instancji klasy status do szablonu do renderowania:
tmplt.render(status=VoterStatus(), ...)
... a Bob jest twoim wujkiem.
thx . Już poprawiłem swój kod i tak jak na początku zasugerowałeś. –