我的模板中有以下代码:

{% for f in friendslist %}

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

        // display stuff

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

{% endfor %}

当friendslist中有多个条目时,它会按预期工作.但是如果只有一个项目,那么forloop中的内容.最后的

我猜这是因为这种情况下的循环是第一个,但我的意思是它也是最后一个对吗?那为什么不把里面的东西都放在首页和末页呢? 有条件的表演?

推荐答案

在我的代码中,如果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

Django相关问答推荐

Django Form初始值不在呈现上起作用

Django基于查询集动态筛选字段名称

如何创建复杂的查询?| ChartJS 和 Django

如何在Django模板中有条件地传递值给with变量?

在 django 中使用自定义 url 转换器传递 url 参数

"" 需要有字段 "id" 的值才能使用这种多对多关系

在 Scrapy 中访问 django 模型

相关字段查找无效:​​icontains

在生产中使用 Django 中的 SQLite?

Django Admin - 覆盖自定义表单字段的小部件

Django 向用户推送 HTTP 响应

Django:如何在视图中获取格式日期?

Django urls 直接到 html 模板

如何将 ManyToManyField 呈现为复选框?

Django模板转换为字符串

Django中reverse()和reverse_lazy()的区别

django.core.servers.basehttp.FileWrapper 在 Django 1.9 中消失

过滤查询参数

Django - TypeError - save() 得到了一个意外的关键字参数force_insert

Django REST 框架中的每个字段权限