Django使用messages框架时alert提示框空白不显示问题求助
Django messages框架页面提示不显示问题修复
核心故障原因
模板代码存在低级拼写错误:循环定义的临时变量是message,但内部引用时误写为messsage(多打了1个s)。Django模板引擎对不存在的变量默认渲染为空值,直接导致alert标签的class属性后缀为空、标签内部无任何消息文本,和你看到的渲染源码完全吻合。
修复方案
直接修正模板里的变量拼写即可,修正后的消息渲染代码如下:
{% for message in messages %} <div class="alert alert-{{ message.tags }} mb-4" role="alert"> {{ message }} </div> {% endfor %} {% block body %} {% endblock %}
现有配置校验(无需修改)
views.py逻辑正确:消息触发后使用redirect跳转,符合messages框架跨请求传递提示的要求,messages.error的调用方式没有问题settings.py的MESSAGE_TAGS配置正确:将Django内置的ERROR级消息映射为Bootstrap框架要求的danger样式类,匹配你的前端class命名规则- 能渲染出空的alert div结构,说明
SessionMiddleware、MessageMiddleware两个依赖中间件已正常启用,无需额外调整配置
内容的提问来源于stack exchange,提问作者RANIA
相关产品推荐
相关产品推荐

