当我尝试从我的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')
答案 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')
并据此更改您的网址