Django模板异常:尝试隐藏提示div时,无论有无数据均显示错误内容
问题修复方案
核心错误点
- 变量拼写错误:模板中多处将
notification误写为notfication,导致模板无法正确识别变量,逻辑判断完全失效。 - 条件判断逻辑错误:
{% if not notfication in alert %}的写法存在本质问题——notfication是后续循环才会定义的变量,在这个if判断阶段未被初始化,导致该条件永远为真,因此无论alert是否有数据,都会执行if块的内容。
修正后的代码
根据你“当notification项为None时隐藏提示div,有有效数据时显示滚动通知”的需求,调整后的代码如下:
{% if alert and alert is not None %} <div class="marquee-area"> <div class="marquee-wrap"> {% for notification in alert %} {% if notification is not None %} <span>{{ notification.title }}</span> {% endif %} {% endfor %} </div> </div> {% endif %}
代码说明
- 先判断
alert是否存在且不为空,确保有数据时才渲染通知区域。 - 循环内部增加
notification is not None的判断,过滤掉无效的None项,避免渲染空内容。 - 完全移除了原来的空提示div,实现“无有效通知时隐藏提示区域”的需求;如果需要在无数据时显示自定义空提示,可在
{% else %}块中添加对应内容。
额外检查项
- 确认后端传递的
alert变量是合法的列表类型,没有错误传递None值。 - 检查页面中“Nothing her text”的来源,大概率是原if块中
None文本的拼写错误或被其他逻辑替换,修正后该内容会消失。
内容的提问来源于stack exchange,提问作者Abdulloh 1999
相关产品推荐
相关产品推荐

