尝试注销django时出现运行时错误

Ang*_*rro 5 python django recursion runtime logout

当我尝试从我的django项目注销时,出现以下错误:

"调用Python对象时超出了最大递归深度"

这是注销按钮的URL:

url(r'^logout', 'users.views.logout', name='logout'),
Run Code Online (Sandbox Code Playgroud)

以下是观点:

from django.shortcuts import render
from deck1.models import Card
from django.template import RequestContext 
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import login, authenticate, logout
from django.contrib.auth.decorators import login_required
from users.forms import RegisterForm

@login_required
def logout(request):
    logout(request)
    return  HttpResponseRedirect('/deck')
Run Code Online (Sandbox Code Playgroud)

ozg*_*gur 16

您的视图logout覆盖了内置logout函数的命名空间.django.contrib.auth.login使用as关键字为函数定义别名.

from django.contrib.auth import logout as django_logout

@login_required
def logout(request):
    django_logout(request)
    return  HttpResponseRedirect('/deck')
Run Code Online (Sandbox Code Playgroud)