Django 值注销时出错,注销未返回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":

按下底部代码的注销按钮时出现以下错误-

值/注销时出错 view app.views.logout未返回HttpResponse对象。它没有返回任何结果。 请求方法:获取 请求URL:

Django版本:3.0.8

异常类型:ValueError 异常值: view app.views.logout未返回HttpResponse对象。它没有返回任何结果

我的代码是

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