如果不安装django.contrib.messages.middleware.MessageMiddleware,则无法添加消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果不安装django.contrib.messages.middleware.MessageMiddleware,则无法添加消息相关的知识,希望对你有一定的参考价值。
我是Django的新手。我正在尝试运行应用程序,我需要向管理员添加新用户。服务器正在运行。当我输入信息冷杉新用户并点击“保存”时,我收到以下错误。我正在使用django-trunk。
MessageFailure at /admin/auth/user/add/
You cannot add messages without installing
django.contrib.messages.middleware.MessageMiddleware
Request Method: POST
Request URL: http://localhost:8000/admin/auth/user/add/
Django Version: 1.6.dev20130403090717
Exception Type: MessageFailure
Exception Value: You cannot add messages without installing django.contrib.messages.middleware.MessageMiddleware
关于可能发生什么的任何想法?
对我来说,问题是单元测试所特有的。事实证明,某些中间件在某些单元测试中不起作用,更多信息请点击:
https://code.djangoproject.com/ticket/17971
和这里:
Why don't my Django unittests know that MessageMiddleware is installed?
我的解决方案只是模拟这些测试的消息框架,可能有更好的解决方案(django测试客户端?)
检查django.contrib.messages
中的INSTALLED_APPS
和django.contrib.messages.middleware.MessageMiddleware
中的MIDDLEWARE_CLASSES
。
检查是否是
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
代替
MIDDLEWARE = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
元组名称应为MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES折旧https://docs.djangoproject.com/en/2.1/releases/1.10/#id3
2018更新在设置中的django 2.0+名称被更改。现在在设置中使用MIDDLEWARE
而不是MIDDLEWARE_CLASSES
列表名称!
我遇到了同样的错误。您必须注意MIDDLEWARE_CLASSES中的中间件的顺序。在最后插入相应的中间件。就像这样,
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
请注意订单安排。
可能你把一个错误的WSGI_request
当通常称为request
作为add_message()
方法的参数
以上是关于如果不安装django.contrib.messages.middleware.MessageMiddleware,则无法添加消息的主要内容,如果未能解决你的问题,请参考以下文章
导入的库 'owaspapi' 不包含关键字。 (如果它是使用 pip 安装的)
如果 venv 文件夹安装在子目录中,为啥 VSCode 不检测 venv?