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'])
答案 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