1. AI新视界首页
  2. AI经验分享
  3. 框架平台

解决django消息模块messages无法显示

其消息框架允许你临时将消息存储在请求中,并在接下来的请求(通常就是下一个请求)中提取它们并显示。每个消息都带有一个特定level 标签,表示其优先级(例如info、warning 或error)

一.简介

在网页应用中,你经常需要在处理完表单或其它类型的用户输入后,显示一个通知消息(也叫做“flash message”)给用户

对于这个功能,Django 提供基于Cookie 和会话的消息,无论是匿名用户还是认证的用户。

其消息框架允许你临时将消息存储在请求中,并在接下来的请求(通常就是下一个请求)中提取它们并显示。每个消息都带有一个特定level 标签,表示其优先级(例如info、warning 或error)

二.启用消息框架

消息框架的实现通过一个中间件 类和对应的context processor。

django-admin startproject 创建的默认settings.py 已经包含启用消息框架功能需要的所有的设置:

INSTALLED_APPS 中的’django.contrib.messages’。

MIDDLEWARE_CLASSES 中的’django.contrib.sessions.middleware.SessionMiddleware’ 和’django.contrib.messages.middleware.MessageMiddleware’。

默认的后端存储 依赖sessions。所以MIDDLEWARE_CLASSES 中必须启用SessionMiddleware 并出现在MessageMiddleware 之前。

TEMPLATES 设置中定义的DjangoTemplates 的’context_processors’ 选项包含’django.contrib.messages.context_processors.messages’。

三:配置消息存储和级别,这个不赘述。

默认按照上述配置不会出现问题。但是默认情况下,context_processors这个项在settings里面是没有的。没有的时候其实是可以正常使用的。但是由于之前我们为了在解决另外一个问题的时候为了使用request.sessions的时候增加了context_processors,但是又没包含django.contrib.messages.context_processors.messages。所以导致无法渲染。直接天假进去就可以解决了。

原创文章,作者:ifyoung,如若转载,请注明出处:https://www.drugfoodai.com/django-messages.html

注意:本站原创指的是原创编译,并不主张对所介绍的工作的版权,如有侵权,请联系删除!

发表评论

邮箱地址不会被公开。 必填项已用*标注