Django TypeError:authenticate()接受0个参数(给定3个)

时间:2017-08-28 21:36:09

标签: python django django-1.10

Django version 1.10.7

我正在TypeError: authenticate() takes exactly 0 arguments (3 given)

像这样导入authenticate():
from django.contrib.auth import authenticate, login

像这样调用authenticate():
authenticate(request, username=request.POST['username'] ,password=request.POST['password'])

3 个答案:

答案 0 :(得分:2)

将身份验证设置为变量,不要在请求中传递,例如:

auth = authenticate(username=request.POST['username'] ,password=request.POST['password'])

然后使用登录来让用户登录:

login(request, auth)

别忘了导入登录

答案 1 :(得分:2)

在1.10 authenticate中不采用位置参数(docs) 称之为

authenticate(username=request.POST['username'], password=request.POST['password'])

答案 2 :(得分:2)

使用不带请求的身份验证,只需使用用户名和密码authenticate(username=XXX,password=XXX)。请参阅文档https://docs.djangoproject.com/en/1.11/_modules/django/contrib/auth/#authenticate