Я предлагаю реализовать это в коде Python:
class OnlyOnce(object):
def __init__(self, data):
self.data = data
self.printed = False
def __str__(self):
if self.printed is False:
self.printed = True
return self.data
return ''
Создайте экземпляр OnlyOnce
в своем коде Python и передайте его шаблону, а затем каждый раз, когда вы захотите его использовать, просто используйте {{ only_once }}
.
Одна вещь, которую я замечаю о многих людях, использующих Джинджу, это то, что они хотят делать вещи в стиле Джанго, то есть писать расширения. Но выражения Jinja / importing / whats достаточно мощные, чтобы вам не приходилось использовать расширения для всего.
И да, использование вещи context.my_flag
- плохая идея. Только шаблон может изменить контекст. EVER.