Javascript 循环变量的Django模板标记{for/empty}}

Javascript 循环变量的Django模板标记{for/empty}},javascript,python,django,Javascript,Python,Django,要从Django应用程序生成一组带有相关参数的Javascript变量,我有两个嵌套的for循环: <script> {% for model in models %} {% for item in model.attribute|slice:":3" %} {% if forloop.first %} var js_variable{{ forloop.parentloop.counter0 }} = [ {% e

要从Django应用程序生成一组带有相关参数的Javascript变量,我有两个嵌套的for循环:

<script>
{% for model in models %} 
    {% for item in model.attribute|slice:":3" %}
        {% if forloop.first %} 
            var js_variable{{ forloop.parentloop.counter0 }} = [
        {% endif %}
            '{{ item.attribute }}' ,
        {% if forloop.last %}
            {{ item.attribute }} ]
    {% empty %}
        var js_variable{{ forloop.parentloop.counter0 }} = []
    {% endfor %}
{% endfor %}

....code that gets unhappy when js_variable[n] doesn't exist.....

</script>

{%用于模型中的模型%}
{%用于模型中的项。属性|切片:::3“%}
{%if-forloop.first%}
var js_变量{{forloop.parentloop.counter0}}=[
{%endif%}
“{item.attribute}}”,
{%if-forloop.last%}
{{item.attribute}}]
{%empty%}
var js_变量{{forloop.parentloop.counter0}}=[]
{%endfor%}
{%endfor%}
..当js_变量[n]不存在时不满意的代码。。。。。
{%empty%}
发生时,它似乎无法访问
{{{forloop.parentloop.counter0}}
变量,因此变量名
js_variable[n]
被错误地打印为
js_variable
(没有计数器另外提供的数字),随后代码抱怨


是否该变量在
{{empty}
标记中不可用?

这是预期的行为。简化我们有:

{% for A ... %}
    {{ forloop.* }} is there for the 'for A ...'

    {% for B ... %}
        {{ forloop.* }} is there for the 'for B ...'
        {{ forloop.parentloop.* }} refers to the 'for A ...'
    {% empty %}
        {{ forloop.* }} is there for the 'for A ...' !!!
    {% endfor %}
{% endfor %}
在{%empty%}中,{{forloop}}指的是父forloop!更改:

var js_variable{{ forloop.parentloop.counter0 }} = []
与:


我没有意识到内部forloop变量在空的情况下是不存在的,我猜我把它想象成一个空的Python序列类型,尽管进一步思考后,我无法真正适应这个心智模型。
var js_variable{{ forloop.counter0 }} = []