无效的块标记:'set'

ism*_*nni 5 python django jinja2

我想在Jinja模板中设置一个变量.就这么简单.但我得到错误说:Invalid block tag: 'set', expected 'endblock'

这是我的模板:

{% block content %}
    <div class="col-lg-7 col-lg-offset-2">
        <div style="padding-top:100px"></div>
        <div class="panel panel-primary">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="mdi-social-person"></i>
                    Reports
                </h3>
            </div>
            <div class="panel-body">
                    {% set index = 'a' %}
            </div>
        </div>
    </div>
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)

我认为设置应该是直截了当不是这么困难.

ism*_*nni 5

set是 jinja 的标签,但 jinja 不是评论中提到的 @Jharris 和 @Gocht 的 Django 默认模板引擎。所以,我需要先安装jinja才能使用set标签。


msb*_*msb 5

使用Django template system(默认模板引擎),您可以使用with.

{% with index='a' %}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)

请注意,您需要结束标记,它将为您提供变量的范围。=(另请注意,变量名称、符号和值之间不能有空格。因为为什么与 python 相关的任何内容都是灵活的。:-/ )

您可以在此处阅读有关引擎的更多信息以及在此处阅读有关有效标签的更多信息。