简体   繁体   English

如何使用 jinja2 修复模板?

[英]how to fix a template using jinja2?

I'm trying to filter the output of data from the database using jinja2 in the template, but it gives an error below, I don't understand what this might be related to我正在尝试使用模板中的 jinja2 从数据库中过滤 output 数据,但它在下面给出了一个错误,我不明白这可能与什么有关

 File "templates/admin.html", line 187, in template
    {% endfor %}
jinja2.exceptions.TemplateSyntaxError:Encountered unknown tag 'endfor'. You probably made a nesting mistake.
Jinja is expecting this tag, but currently looking for 'elif' or 'else' or
'endif'. The innermost block that needs to be closed is 'if'.

my template:我的模板:

{% for fd in foods %}
<div class="list__item">
    <span>{{ fd.food_name }}</span>
    <div class="switch-btn"></div>
</div>
{% endfor %}
</div>
<div class="order__container">
    {% for order in orders %}
            {% if order.ready_status|string() == new_order|string() %}
                <div class="order__item orange">
                    <span class="order__num">Заказ № {{ order.id }}</span>
                    <span class="order__elem">{{ order.food.food_name }}-{{ order.food_counter }}</span>
                    <span class="order__sum">Итог {{ order.total_price }}</span>
                </div>
            {% if order.ready_status|string() == adopted|string() %}
                <div class="order__item green">
                    <span class="order__num">Заказ № {{ order.id }}</span>
                    <span class="order__elem">{{ order.food.food_name }}-{{ order.food_counter }}</span>
                    <span class="order__sum">Итог {{ order.total_price }}</span>
                </div>
            {% else %}
                <div class="order__item blue">
                    <span class="order__num">Заказ № {{ order.id }}</span>
                    <span class="order__elem">{{ order.food.food_name }}-{{ order.food_counter }}</span>
                    <span class="order__sum">Итог {{ order.total_price }}</span>
                </div>
            {% endif %}
    {% endfor %}
</div>
    </div>

Guess the second if should be a elif .猜猜第二个if应该是elif Thus:因此:

template = """{% for fd in foods %}
<div class="list__item">
    <span>{{ fd.food_name }}</span>
    <div class="switch-btn"></div>
</div>
{% endfor %}
</div>
<div class="order__container">
    {% for order in orders %}
            {% if order.ready_status|string() == new_order|string() %}
                <div class="order__item orange">
                    <span class="order__num">Заказ № {{ order.id }}</span>
                    <span class="order__elem">{{ order.food.food_name }}-{{ order.food_counter }}</span>
                    <span class="order__sum">Итог {{ order.total_price }}</span>
                </div>
            {% elif order.ready_status|string() == adopted|string() %}
                <div class="order__item green">
                    <span class="order__num">Заказ № {{ order.id }}</span>
                    <span class="order__elem">{{ order.food.food_name }}-{{ order.food_counter }}</span>
                    <span class="order__sum">Итог {{ order.total_price }}</span>
                </div>
            {% else %}
                <div class="order__item blue">
                    <span class="order__num">Заказ № {{ order.id }}</span>
                    <span class="order__elem">{{ order.food.food_name }}-{{ order.food_counter }}</span>
                    <span class="order__sum">Итог {{ order.total_price }}</span>
                </div>
            {% endif %}
    {% endfor %}
</div>
    </div>```

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM