Як оновити глобальну змінну зсередини оператора IF / ELSE або циклу FOR
JINJA2 має обмеження, яке запобігає зміні глобальної змінної зсередини оператора IF / ELSE циклу FOR.
Приклад сценарію (не працює):
У цьому коді ми хочемо змінити змінну маєЗнижка зсередини оператора IF / ELSE, залежно від того, чи є у користувача ваучери ваучери список атрибута користувача. На жаль, це не спрацює:
{% set hasDiscount = FALSE %}
{% if userAttribute.vouchers %}
{% set hasDiscount = TRUE %}
{% endif %}
{{hasDiscount}} <---- still prints FALSE
Вирішення проблеми:
Додавання значень до глобальної змінної списку працює зсередини сфери тверджень IF / ELSe або FOR. Ми можемо зробити hasDiscount порожній список та додайте до нього значення за потребою. Приклад:
{% set hasDiscount = [] %}
{% if userAttribute.vouchers %}
{% set temp = hasDiscount.append(TRUE) %}
{% endif %}
Printing all items from the hasDiscount list:
{% for item in hasDiscount %}
{{item}}
{% endfor %}
Or just printing the first item:
{{hasDiscount[0]}}
Last updated