面对Django中{HttpResponseRedirect'的问题

时间:2018-02-20 05:00:18

标签: django

我正在为用户创建基本登录功能。如果登录成功,我将用户重定向到我在HttpResponseRedirect中硬编码的索引页面。但是一旦我点击登录按钮就说了,

在/ Login /上的

TypeError login()需要1个位置参数,但是给出了2个

urls.py中的

索引页面定义如下,

URL(R '^ $',views.index,名字= '索引'),

以下是我的索引视图和登录视图的代码:

def index(request):
    return render(request,'authentication_app/index.html')

def login(request):
    if request.method=='POST':
        username=request.POST.get('name')
        password=request.POST.get('password')

        user = authenticate(username=username,password=password)
        if user:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect('/')
            else:
                return HttpResponse('Your Account has become Invalid')
        else:
            print('Someone tried to login with wrong credentials:{0},{1}'.format(username,password))
            return HttpResponse('Username and Password mismatch.Please enter valid credentials')

    else:
        return render(request,'authentication_app/login.html',{})

2 个答案:

答案 0 :(得分:1)

您需要将功能名称login()更改为user_login()

def user_login(request):

与此处使用的login(request,user) 冲突

答案 1 :(得分:0)

您可以将导入的登录名更改为其他名称 像

from django.contrib.auth import login as auth_login

用户执行登录的auth_login