Tôi nhận thấy tôi đang trả lời một chuỗi cũ. Tuy nhiên, tôi bắt đầu sử dụng Jinja gần đây và chạy vào một vấn đề tương tự: tôi cần đếm số lượng hàng được in trong chu kỳ lồng nhau. Giải pháp của tôi là gói một biến truy cập trong một lớp và truyền một thể hiện cho khuôn mẫu. Tương tự như vậy, bạn có thể sử dụng một lớp wrapper, như vậy
class VoterStatus(object):
def __init__(self, status='active'):
self._status = status
def set_disabled(self):
self._status = 'disabled'
def __str__(self):
return self._status
Sửa đổi mẫu của bạn cho phù
{% for voter in record.voters %}
{% if user == voter %}
{% status.set_disabled() %}
{% endif %}
{{ status }} # outputs: 'disabled'
{% endfor %}
Vượt qua một trường lớp Status để mẫu cho rendering:
tmplt.render(status=VoterStatus(), ...)
... và Bob là chú của bạn.
Nguồn
2017-03-01 08:26:51
thx . Tôi đã sửa đổi mã của tôi và đã làm như bạn đề nghị lúc đầu. –