首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AttributeError:'WSGIRequest‘对象没有属性'user’

AttributeError:'WSGIRequest‘对象没有属性'user’
EN

Stack Overflow用户
提问于 2018-01-12 09:08:07
回答 1查看 1.8K关注 0票数 1

我正在运行Django代码,但是得到了这个错误

代码语言:javascript
运行
复制
AttributeError: 'WSGIRequest' object has no attribute 'user'

我的Django版本是1.8.2,下面是我的setting.py中间件类

代码语言:javascript
运行
复制
MIDDLEWARE_CLASSES = (

'khxia.middlewares.PeeweeConnectionMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',
'subdomains.middleware.SubdomainURLRoutingMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',

'referral.middlewares.ReferralRecordMiddleware',
'common.middlewares.ExceptionMiddleware',
)

这是我的全部回溯

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/Users/motion/kuaixiao_env/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 189, in __call__
    response = self.get_response(request)
  File "/Users/motion/kuaixiao_env/lib/python2.7/site-packages/django/core/handlers/base.py", line 218, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/Users/motion/kuaixiao_env/lib/python2.7/site-packages/django/core/handlers/base.py", line 268, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "/Users/motion/Documents/GitHub/khx2/khxia/home/views.py", line 68, in server_error
    res = render(request, 'home/500.html')
  File "/Users/motion/Documents/GitHub/khx2/khxia/common/shortcuts.py", line 40, in render
    if request.user.is_authenticated():
AttributeError: 'WSGIRequest' object has no attribute 'user'

views.py的第68行是:

代码语言:javascript
运行
复制
def server_error(request):
    res = render(request, 'home/500.html')
    res.status_code = 500
    return res

呈现功能显示为blow:

代码语言:javascript
运行
复制
def render(request, template_name, dictionary=None):
    """

    :param request: Django request object
    :param template_name: template name
    :param dictionary: parameter of dictionary
    """
    dictionary = dictionary or {}
    dictionary.update({
        'settings': settings,
        'DEBUG': settings.DEBUG,
        'server_time': int(time.time()),
    })

    if request.user.is_authenticated():
        dictionary['user_hashid'] = hashid.encode(request.user.id)

    temp = template_name.replace('.html', '').split('/')
    if len(temp) == 1:
        module = 'v{name}'.format(name=temp[0].capitalize())
    else:
        name = ''.join([t.capitalize() for t in temp])
        module = 'v{name}'.format(name=name)
    dictionary['load_module'] = module
    return django_render(
        request,
        template_name,
        dictionary
    )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-12 09:38:11

这是因为您已经按顺序放置了中间件。

request.user是由AuthenticationMiddleware添加到WSGI请求对象中的。

地点

代码语言:javascript
运行
复制
'khxia.middlewares.PeeweeConnectionMiddleware',

这个中间件是继AuthenticationMiddleware之后,还是作为最后一个中间件

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48222837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档