我的模板中包含以下代码:

{% for f in friendslist %}

        {% if forloop.first %}
            // display something
        {% endif %}

        // display stuff

        {% if forloop.last %}
            // display something
        {% endif %}

{% endfor %}

当好友列表中有多个项目时,它会按预期工作。但是,如果只有一项,那么forloop.last中的内容
有条件的不显示。

我猜这是因为在这种情况下循环是第一个,但我的意思是它也是最后一个吧?那么为什么不在第一和最后两个内容中
有条件的表演?

最佳答案

在我的代码中,如果friendslist中只有一个元素,它们都将执行。这是一个可以在 shell 中运行的测试,也许您可​​以找出不起作用的地方:

$ ./manage.py shell

>>> from django import template
>>> t = template.Template("""{% for f in friendslist %}
                         {% if forloop.first %}
                             First of the loop
                         {% endif %}
                         {{ f }}
                         {% if forloop.last %}
                             Last of the loop
                         {% endif %}
                 {% endfor %}""")

>>> c = template.Context({'friendslist' : ['one element',]})
>>> t.render(c)


                        First of the loop

                    one element

                         Last of the loop

关于python - Django模板: forloop. first和forloop.last,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6998366/

10-11 10:25