【发布时间】:2015-12-21 23:22:48
【问题描述】:
我从昨天开始编辑了我的问题: django authenticate() allways returns None,但我认为没有人会注意,因为我已经将问题标记为已回答。 - authenticate() 在 shell 中工作(昨天没有工作) - 在我看来,我可以检索用户并成功检查其密码 但是话又说回来,当我尝试在我的视图中使用 authenticate() 函数时,我得到了一个 None 类型的对象。我什至删除并重新创建了数据库,但行为仍然相同。 我的设置.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',
)
浏览量: 从 django.contrib.auth.models 导入用户 从 django.contrib.auth 导入验证
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?
【问题讨论】:
-
您有
AUTH_USER_MODEL设置吗? -
不,但是当我搜索时,我发现了一些奇怪的事情:我创建了一个新项目来在新环境中测试问题,新设置文件中的版本是 1.8.4,(我预计1.8.2,我在windows中下载的那个),我正在处理的项目中的设置文件版本是1.7。我没有更新或类似的事情。
标签: python django authentication