Django模板if判断forloop.counter==1报解析错误的解决方法
报错原因
Django模板引擎解析标签时要求所有运算符两侧必须保留空格,你写的forloop.counter==1把变量、比较运算符==、值连在了一起,引擎无法识别==是运算符,才会抛出Could not parse the remainder: '==1' from 'forloop.counter==1'的错误。
可行实现方案
你有两种常用写法可以实现给第一轮循环元素加CSS类的需求:
- 修正原有
forloop.counter判断的写法
只需要给==两侧加上空格即可,forloop.counter本身就是从1开始计数,第一轮循环时值为1,逻辑完全成立:{% for item in your_queryset %} <div class="item {% if forloop.counter == 1 %}show{% endif %}"> {{ item.field }} </div> {% endfor %} - 使用Django for循环内置的
forloop.first属性(推荐)
Django模板的for循环自带专门标记首轮循环的布尔属性forloop.first,第一轮循环时该值为True,其余轮次为False,不用手动计数判断,写法更简洁也不容易出错:{% for item in your_queryset %} <div class="item {% if forloop.first %}show{% endif %}"> {{ item.field }} </div> {% endfor %}
注意事项
Django模板标签内的所有运算符,包括比较运算符==/!=/>/<、逻辑运算符and/or/not,两侧都必须留空格,连写都会触发解析错误。
内容的提问来源于stack exchange,提问作者Saravanan Ragavan
相关产品推荐
相关产品推荐

