【问题标题】:Django Messages suddenly not workingDjango 消息突然不起作用
【发布时间】:2014-11-14 21:16:34
【问题描述】:

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',
}

昨晚一切正常。但是今天它显示了上述错误。有人知道为什么会这样吗?我尝试搜索,但似乎没有人遇到过这种突然的行为。另外仅供参考,我在没有停用 virtualenv 的情况下关闭了 cmd 提示符我不知道这会如何影响功能,但以防万一。

提前致谢。

【问题讨论】:

  • 问题中的 Python 模块很可能是两次导入消息,导入错误的东西,或者您正在使用局部变量或全局变量隐藏消息模块。

标签: django django-messages


【解决方案1】:

您的 user_messages 视图所在的文件中可能有一个名为 messages() 的函数。

【讨论】:

  • 优秀的捕获。谢谢!
猜你喜欢
  • 2018-01-11
  • 2019-01-18
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多