首页 > 解决方案 > 'WSGIRequest' 对象没有属性 'is_authenticated'

问题描述

我正在检查用户是否在我的views.py. 然而,Django 不断抛出异常WSGIRequest object has no attribute 'is_authenticated'。我在stackoverflow和github上阅读了一些关于这个问题的类似问题,每个人都指向移动中间件。我已经尝试了几乎所有方法来重组我的中间件,正如同一问题的其他答案中提到的那样,但我没有能够解决它。我什至阅读了订购中间件的文档,但无法从中收集到太多信息。

视图.py

@staticmethod
def cmshome(request):
    if request.is_authenticated:
        return redirect('/cms/')
    username = request.session['user']
    profile_object = Profile.objects.all().filter(user__username=username)
    return render(request, 'cms/cmshome.html', {'profile_content': profile_object})

中间件

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

标签: pythondjango-2.1

解决方案


也许你想写:

if request.user.is_authenticated:
    return redirect('/cms/')

推荐阅读