2014-09-20 41 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