Django 注销时超过最大递归深度(请求)

Django 注销时超过最大递归深度(请求),django,Django,我正在尝试在我的页面上创建注销功能。但是,每当我点击指向注销url的链接时,就会出现这个递归错误 下面是代码,如果用户已登录,则应该显示内容和注销功能。否则显示登录表单 查看方法 def login(request): username = request.POST.get('username') password = request.POST.get('password') user = authenticate(username=username, password=p

我正在尝试在我的页面上创建注销功能。但是,每当我点击指向注销url的链接时,就会出现这个递归错误

下面是代码,如果用户已登录,则应该显示内容和注销功能。否则显示登录表单

查看方法

def login(request):

   username = request.POST.get('username')
   password = request.POST.get('password')

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

   context = {

   }

   if user is not None:
       print('Correct user'   
   else:
       print('Wrong user')

       return render(request, 'index.html', context)

def logout(request):
    print('logged out')
    logout(request)

    return redirect('index')
网址

index.html

    {% if user %}
        <h3>Hello {{user.username}}</h3>
        <a href="{% url 'crowd:logout' %}">Logout</a>
    {% else %}
        <form action="{% url 'crowd:login' %}" method='post'>
        {% csrf_token %}
            <input class='logintext' type='text' placeholder='Username' name='username'>
            <input class='logintext' type='password' placeholder='Password' name='password'><br>
            <input class='loginbutton' type='submit' value='Login'>
            <a class='loginforgotpassword' href="{% url 'crowd:register' %}"> Forgot password?</a>
            <a class='loginregister' href="{% url 'crowd:register' %}"> Register</a>
        </form>
    {% endif%}  

请更改您的注销视图的名称

错误在于:

def logout(request):
    print('logged out')
    logout(request)

    return redirect('index')

您的视图名称已使用请求参数注销。因此,当您在视图中调用logoutrequest时,它会调用您的注销视图,而不是Django的注销函数。这会导致递归。

请更改注销视图的名称

错误在于:

def logout(request):
    print('logged out')
    logout(request)

    return redirect('index')

您的视图名称已使用请求参数注销。因此,当您在视图中调用logoutrequest时,它会调用您的注销视图,而不是Django的注销函数。这会导致递归。

没问题。我们一生都在这里:没问题。我们一生都在这里:
def logout(request):
    print('logged out')
    logout(request)

    return redirect('index')