首页 文章

django authenticate()仍然总是返回None

提问于
浏览
-1

我昨天编辑了我的问题:django authenticate() allways returns None,但我认为没有人会注意,因为我已经将问题标记为已回答 . - authenticate()在shell中工作(昨天没有工作) - 在我的视图中我可以检索用户并成功检查其密码然后再次,当我尝试在我的视图中使用authenticate() - 函数时,我得到一个无类型的对象 . 我甚至删除并重新创建了数据库,但行为仍然相同 . 我的settings.py:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    #'django.contrib.auth.middleware.RemoteUserMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.contrib.staticfiles.finders.FileSystemFinder',
)

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',                           
    #'django.contrib.auth.backends.RemoteUserBackend',
    )

views:来自django.contrib.auth.models从django.contrib.auth导入用户import authenticate

def authentifizieren(request):
    """
    """
    if request.method == 'POST':
        uname = request.POST['username']
        passwd = request.POST['password']
        dbuser = User.objects.get(username=uname)
        dbuvalid=dbuser.check_password(passwd)
        auser = authenticate(username=uname, password=passwd)
        print('***************************************', dbuser,dbuvalid)
        print('***************************************', auser)
    if (auser != None):
        login(request, auser)
    return redirect('/startseite')

输出:

*************************************** test True
*************************************** None

我还硬编码用户/密码字符串以排除与编码相关的问题,但没有成功 . 顺便问一下,什么是MCVE?

1 回答

  • 0

    现在authenticate()有效 . 这是版本不匹配 . 现在我记得我在家里创建了初始项目,在我的gentoo-machine上仍然安装了1.7.7版本,并在Windows机器上工作1.8.4 . 我认为这是不同的设置文件,愚蠢我的错误 .

    抱歉给你带来不便

相关问题