2014-09-20 39 views
2

Django的邮件应用程序突然显示以下错误:Django的消息突然不工作

AttributeError at /user_logout/ 

'function' object has no attribute 'add_message' 

Request Method:  GET 
Request URL: http://127.0.0.1:8080/user_logout/ 
Django Version:  1.5.5 
Exception Type:  AttributeError 
Exception Value:  

**'function' object has no attribute 'add_message'** 

Exception Location:  F:\mysite\myproj\myapp\views.py in user_logout, line 185 
Python Executable: F:\mysite\env\Scripts\python.exe 
Python Version:  2.7.3 

我不知道为什么会出这个错误。

def user_logout(request): 
r_user = RU.objects.get(id=request.session['somekey']) 
try: 
    del request.session['somekey'] 
    r_user.logout_ts = datetime.datetime.now() 
    r_user.save() 
    messages.add_message(request, messages.INFO, 'Logged out!') 
    return HttpResponseRedirect("/") 
except KeyError: 
    messages.add_message(request, messages.INFO, 'You are not Logged in!') 
    return HttpResponseRedirect("/") 

settings.py

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 

TEMPLATE_CONTEXT_PROCESSORS = { 
    'myproj.context_processors.which_page', 
    'myproj.context_processors.user_context', 
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.request', 
    'django.contrib.messages.context_processors.messages', 
} 

一切都很好,昨晚工作。但今天它显示了上面提到的错误。任何人都知道为什么会这样?我尝试搜索,但似乎没有人遇到过这种突然的行为。此外,仅供参考,我关闭了cmd提示符而不停用virtualenv我不知道如何影响功能,但如果它确实如此。

在此先感谢。

+1

很可能问题中的Python模块导入消息两次,导入错误的东西,或者您使用局部变量或全局变量对消息模块进行遮蔽。 – 2014-09-20 11:11:22

回答

4

您可能在与user_messages视图相同的文件中有一个称为messages()的功能。

+0

优秀的捕获。谢谢! – Jatinder 2014-09-20 11:27:08