Django使用messages组件遇TemplateSyntaxError错误求助
解决Django Messages功能的TemplateSyntaxError问题
你的配置本身是正确的,问题出在模板代码的错误写法上:
核心错误点
模板中的{% message %}是错误语法——你把上下文变量当成了模板标签来使用,这导致Django误以为你要加载名为messages的标签库,但实际上不存在这个标签库,从而抛出错误。
修正后的模板代码
把模板里的{% message %}替换为变量渲染语法{{ message }},如果需要根据消息类型添加样式,可以结合message.tags:
<h2> {% if messages %} {% for message in messages %} <div class="{{ message.tags }}">{{ message }}</div> {% endfor %} {% endif %} </h2>
额外注意
不需要在模板顶部添加{% load messages %},因为messages是通过上下文处理器django.contrib.messages.context_processors.messages自动注入到模板上下文的变量,并非标签库,加载它反而会引发错误。
内容的提问来源于stack exchange,提问作者Kee Yu
相关产品推荐
相关产品推荐

