Django messages消息未在网页展示,仅显示FallbackStorage对象如何解决
你遇到的报错是因为直接在模板中输出了messages存储对象本身,没有遍历读取其中存储的具体消息内容,按照以下步骤调整即可修复:
1 检查基础配置完整性
首先确认你的项目配置没有遗漏必要项:
settings.py的INSTALLED_APPS列表中已添加django.contrib.messagessettings.py的MIDDLEWARE列表中已包含django.contrib.sessions.middleware.SessionMiddleware、django.contrib.messages.middleware.MessageMiddlewaresettings.py的TEMPLATES配置项中,对应模板的OPTIONS.context_processors列表已添加django.contrib.messages.context_processors.messages
2 修正模板渲染代码
不要直接写{{ messages }}输出对象,改为循环遍历所有消息内容:
{% if messages %} {% for message in messages %} <div class="alert alert-{{ message.tags }}"> {{ message }} </div> {% endfor %} {% endif %}
3 确认视图消息添加逻辑正确
视图中添加消息的标准写法参考:
from django.contrib import messages def register(request): # 你的注册业务逻辑 if form.is_valid() is False: messages.error(request, "注册失败:输入信息不符合要求") return render(request, "register.html")
调整完成后即可正常展示消息文本,不会再输出对象内存地址。
内容的提问来源于stack exchange,提问作者Olatunji Azeez
相关产品推荐
相关产品推荐

