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

问题描述:

我正在使用最新版本的django和python 3,当我登录时,出现以下错误消息。django login()需要1个位置参数,但给出了2个

Django的登录()需要1周位置的说法,但2被赋予

请找我下面的登录视图的代码。

from django.shortcuts import render, get_object_or_404,redirect 
from django.contrib.auth.models import User 
from django.contrib.auth import authenticate, login 
from authentication.forms import LoginForm, ForgottenPasswordForm, ResetPasswordForm 
from authentication.functions import send_user_reset_password_link, resend_password_reset_link 
from authentication.models import ResetPassword 
# Create your views here. 

def login(request): 
    error_message = None 
    heading = 'Login Form' 
    if request.method == 'POST': 

     form = LoginForm(request.POST) 
     if form.is_valid(): 

      username = form.cleaned_data['username'] 
      password = form.cleaned_data['password'] 
      remember_me = form.cleaned_data['remember_me'] 

      user = authenticate(request,username=username, password=password) 

      if not request.POST.get('remember_me', None): 
       #request.session.set_expiry(0)   
      if user is not None: 
       login(request, user) 
       return redirect('property_index',user.id) 
      # A backend authenticated the credentials 
      else: 
       error_message = 'No login credentials found' 
      # No backend authenticated the credentials 

    form = LoginForm() 
    return render(request,'authentication/forms/login.html',{ 
     'form':form, 
     'error_message':error_message, 
     'heading':heading 

     }) 
+2

你覆盖'通过定义一个新的'login'功能login'。 –

+0

调用您的视图别的东西。 –

改变进口

from django.contrib.auth import authenticate, login as dj_login 
#             ^^^^^^^^ 

,并使用

dj_login(request, user)