[英]Runtime error when trying to logout django
When I try to logout from my django project, I get the following error:当我尝试从 django 项目注销时,出现以下错误:
"maximum recursion depth exceeded while calling a Python object" “调用 Python 对象时超出了最大递归深度”
Here is the url for the logout button:这是注销按钮的网址:
url(r'^logout', 'users.views.logout', name='logout'),
And here is the view:这是视图:
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')
Your view logout
is overriding the namespace of built-in logout
function.您的视图
logout
正在覆盖内置logout
功能的命名空间。 Define an alias for django.contrib.auth.login
function using as
keyword.使用
as
关键字为django.contrib.auth.login
函数定义别名。
from django.contrib.auth import logout as django_logout
@login_required
def logout(request):
django_logout(request)
return HttpResponseRedirect('/deck')
Use this:用这个:
@login_required
def user_logout(request):
logout(request)
return HttpResponseRedirect('/deck')
and according to that change your url并据此更改您的网址
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.