你不能在没有安装的情况下添加消息django.contrib.messages.middleware.MessageMiddleware
问题描述:
我是Django的新手。 我想运行一个应用程序,我需要添加一个新的用户到管理员。服务器正在运行。当我输入新用户的信息并点击“保存”时,出现以下错误。我正在使用django-trunk。你不能在没有安装的情况下添加消息django.contrib.messages.middleware.MessageMiddleware
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
任何有关可能发生什么的想法?
答
检查您是否有django.contrib.messages
的INSTALLED_APPS
和django.contrib.messages.middleware.MessageMiddleware
的MIDDLEWARE_CLASSES
。
答
我遇到了同样的错误。 您必须注意MIDDLEWARE_CLASSES中的中间件的顺序。 插入相应的中间件在final.Like此,
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
注意的顺序排列。
答
对我来说,问题是特定于单元测试。事实证明,一些中间件不会在某些类型的单元测试工作,这里更多的信息:
https://code.djangoproject.com/ticket/17971
这里:
Why don't my Django unittests know that MessageMiddleware is installed?
我的解决办法只是模拟出的这些测试的消息框架,可能有更好的解决方案(django测试客户端?)
答
可能你把一个错误的WSGI_request
通常称为request
作为参数到add_message()
方法
答
检查它是否是
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
你在INSTALLED_APPS和Django的''有django.contrib.messages' .contrib.messages.middleware.MessageMiddleware'在MIDDLEWARE_CLASSES中? – alecxe 2013-04-06 22:40:30
优秀!这工作。谢谢。 – user1867563 2013-04-07 02:22:03
我正在安装一个来自2008年的软件包,我猜设置文件不是最新的。 – user1867563 2013-04-07 02:22:41