use*_*563 18 django django-admin
我是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
Run Code Online (Sandbox Code Playgroud)
关于可能发生什么的任何想法?
hwj*_*wjp 22
对我来说,问题是单元测试所特有的.事实证明,某些中间件在某些单元测试中不起作用,更多信息请点击:
https://code.djangoproject.com/ticket/17971
和这里:
为什么我的Django单元测试不知道MessageMiddleware是否已安装?
我的解决方案只是模拟这些测试的消息框架,可能有更好的解决方案(django测试客户端?)
ale*_*cxe 10
检查您是否有django.contrib.messages在INSTALLED_APPS和django.contrib.messages.middleware.MessageMiddleware中MIDDLEWARE_CLASSES.
如果您正在运行普通的 django 代码,您应该django.contrib.messages.middleware.MessageMiddleware按照其他人的建议添加
到您的中间件中
如果您正在运行测试用例并使用请求工厂,那么正如上面@hwjp 所回答的那样,这是一个错误(不会修复)。请求工厂不调用中间件,开发人员不打算改变这种行为。
然而,有一个简单的解决方案。
在您的测试设置文件(即settings/test.py)中添加以下行
MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
Run Code Online (Sandbox Code Playgroud)
在您的测试代码中,您可以编写这样的代码
request = RequestFactory().get("/")
# Add support django messaging framework
request._messages = messages.storage.default_storage(request)
Run Code Online (Sandbox Code Playgroud)
就是这样。将此请求对象传递给任何使用 django 消息的代码都可以正常工作。
检查是否
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
代替
MIDDLEWARE = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
元组名称应为MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES已贬值https://docs.djangoproject.com/en/2.1/releases/1.10/#id3
| 归档时间: |
|
| 查看次数: |
8588 次 |
| 最近记录: |