Eski bir iş parçacığına yanıt verdiğimin farkındayım. Ancak, Jinja'yı yakın zamanda kullanmaya başladım ve benzer bir soruna girdim: İç içe geçmiş döngülerde yazdırılan satırların miktarını saymam gerekiyordu. Çözümüm, bir sınıftaki bir sayaç değişkenini sarmalayıp bir örneği şablona geçirmekti. Benzer şekilde, buna göre
{% for voter in record.voters %}
{% if user == voter %}
{% status.set_disabled() %}
{% endif %}
{{ status }} # outputs: 'disabled'
{% endfor %}
render için şablona bir durum sınıfı örneğini geçirin böylece
class VoterStatus(object):
def __init__(self, status='active'):
self._status = status
def set_disabled(self):
self._status = 'disabled'
def __str__(self):
return self._status
senin şablonunu değiştirme gibi bir sarmalayıcı sınıf kullanabilirsiniz:
tmplt.render(status=VoterStatus(), ...)
... ve Bob senin amcan.
thx . Kodumu zaten gözden geçirdim ve ilk başta önerdiğini beğendim. –