Runtime error when trying to logout django

瘦欲@ 提交于 2020-02-03 07:20:46

问题


When I try to logout from my django project, I get the following error:

"maximum recursion depth exceeded while calling a Python object"

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')

回答1:


Your view logout is overriding the namespace of built-in logout function. Define an alias for django.contrib.auth.login function using as keyword.

from django.contrib.auth import logout as django_logout

@login_required
def logout(request):
    django_logout(request)
    return  HttpResponseRedirect('/deck')


来源:https://stackoverflow.com/questions/31779234/runtime-error-when-trying-to-logout-django

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!