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

时间:2015-08-03 04:01:13

标签: python django recursion runtime logout

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

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

以下是退出按钮的网址:

url(r'^logout', 'users.views.logout', name='logout'),

以下是观点:

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

2 个答案:

答案 0 :(得分:14)

您的视图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') 函数定义别名。

<tr>

答案 1 :(得分:0)

使用这个:

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

并据此更改您的网址