首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环变量的Django模板标记{{ for /空}}

循环变量的Django模板标记{{ for /空}}
EN

Stack Overflow用户
提问于 2012-03-12 20:58:12
回答 1查看 13.7K关注 0票数 10

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

代码语言:javascript
运行
复制
<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>

当发生{% empty %}时,它似乎无法访问{{ forloop.parentloop. counter0 }}变量,因此变量名js_variable[n]被错误地打印为js_variable (没有计数器以其他方式提供的数字),并且后面的代码报告。

是不是这个变量在{{ empty }}标记中不可用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-12 20:59:57

这是意料之中的行为。简化我们有:

代码语言:javascript
运行
复制
{% 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!更改:

代码语言:javascript
运行
复制
var js_variable{{ forloop.parentloop.counter0 }} = []

通过以下方式:

代码语言:javascript
运行
复制
var js_variable{{ forloop.counter0 }} = []
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9667434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档