Django模板循环结合if语句时,如何正确访问数组元素?
问题解决:Django模板中正确访问列表元素
你的问题出在模板里访问hour_1列表元素的语法错误:Django模板中访问列表的元素需要使用[索引值]的形式,而不是点语法(.)。你原本写的hour_1.schedule_part会被模板解析成尝试访问hour_1对象的schedule_part属性,而不是用schedule_part作为索引去取列表元素,这就导致了VariableDoesNotExist异常,并且逻辑判断完全失效,最终只显示button_busy。
修正后的模板代码如下:
{% for schedule_part in range_5 %} {% if hour_1[schedule_part] == 0 %} {% include "users/button_free.html" with button_id=schedule_part %} {% else %} {% include "users/button_busy.html" with button_id=schedule_part %} {% endif %} {% endfor %}
补充说明:你原来的button_id传的是列表元素值(0或1),如果按钮ID需要的是循环的索引值(0-4),就用button_id=schedule_part;如果确实需要元素值,就改成button_id=hour_1[schedule_part],根据实际需求调整即可。
内容的提问来源于stack exchange,提问作者MahukaMaKaka
相关产品推荐
相关产品推荐

