简体   繁体   English

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM