Django 值注销时出错,注销未返回HttpResponse对象
按下底部代码的注销按钮时出现以下错误- 值/注销时出错 view app.views.logout未返回HttpResponse对象。它没有返回任何结果。 请求方法:获取 请求URL: Django版本:3.0.8 异常类型:ValueError 异常值: view app.views.logout未返回HttpResponse对象。它没有返回任何结果 我的代码是Django 值注销时出错,注销未返回HttpResponse对象,django,django-forms,django-views,logout,Django,Django Forms,Django Views,Logout,按下底部代码的注销按钮时出现以下错误- 值/注销时出错 view app.views.logout未返回HttpResponse对象。它没有返回任何结果。 请求方法:获取 请求URL: Django版本:3.0.8 异常类型:ValueError 异常值: view app.views.logout未返回HttpResponse对象。它没有返回任何结果 我的代码是 def logout(request): if request.method=="POST":
def logout(request):
if request.method=="POST":
auth.logout(request)
return redirect('login')
我的html是
<li class="nav-item mr-3">
<form id="logout" method="POST">
{% csrf_token %}
<input type ="hidden">
</form>
<a class="nav-link" href="{% url 'logout'%}" onclick="javacript:document.getElementById('logout').submit()">
Logout
</a>
</li>
在代码中
def logout(request):
if request.method=="POST":
auth.logout(request)
return redirect('login')
不需要显式重定向,因为auth.logout可以在注销后处理重定向。只需在settings.py中设置LOGOUT\u REDIRECT\u URL=my\u URL
或者,如果在URL.py导入中使用Django 2.2.x或更高版本,也可以在URL.py中实现同样的效果
然后在urlpatterns中添加以下路径
path('logout/', LogoutView.as_view(next_page=settings.LOGOUT_REDIRECT_URL), name='logout'),
那么您的视图中就不需要任何代码了。py很明显,您的表单中有一个带有href的标记,而不是表单。您使用的是哪个版本的Django?
path('logout/', LogoutView.as_view(next_page=settings.LOGOUT_REDIRECT_URL), name='logout'),