Django中的LogoutView有问题.当我try 输入"accounts/logout"链接时,django服务器会在cmd中弹出:

Method Not Allowed (GET): /accounts/logout/
Method Not Allowed: /accounts/logout/
[24/Feb/2024 13:48:11] "GET /accounts/logout/ HTTP/1.1" 405 0

以下是查看文件的内容:

从django.urls导入路径,包括 从django.contri.auth将视图导入为auth_views 从.view导入showProfile、logout_user

app_name = 'user'
urlpatterns = [
    path('logout/', auth_views.LogoutView.as_view(template_name='registration/logged_out.html'), name='logout'),
    path('', include('django.contrib.auth.urls')),
]

而这是‘注册/Logging_out.html’文件内容:

{% extends "generic_base.html" %}

{% block content %}
    <form method="post" action="{% url 'user:logout' %}">
        {% csrf_token %}
        <button type="submit">Logout</button>
    </form>
{% endblock content %}

模板文件位于应用程序‘Account’中.而这app_name = 'user'人 以下是Generic_base.html模板的内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {% block title %}
        <title>Donations</title>
    {% endblock title %}
</head>
<body>
    {% block content %}
    {% endblock content %}
</body>
</html>

我try 了很多方法来解决这个问题,但都没有奏效. 我也看到了Stack Overflow中提供的关于这个问题的所有解决方案,但都没有奏效.我也try 了Django built in Logout view Method Not Allowed (GET): /users/logout/中的解决方案,但这不能解决问题.

推荐答案

ALogoutView主要有template_name,因为它是TemplateView YES的子类,但这只有在重定向以某种方式指向LogoutView本身时才使用,但无论如何这可能是一个糟糕的 idea .

因此,您可以使用LogoutView显示要注销的表单,将注销按钮放在其他视图或所有页面上,然后使用问题中提供的表单在那里注销.因此,您可以将此表单放在navbar中,它将注销用户,如果LogoutView中指定了next_page,则重定向到next_page指定的页面;如果没有指定,则重定向到LOGOUT_REDIRECT_URL setting [Django-doc].

Python相关问答推荐

Matlab中是否有Python的f-字符串等效物

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

如何记录脚本输出

使用groupby Pandas的一些操作

如何设置视频语言时上传到YouTube与Python API客户端

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

为一个组的每个子组绘制,

寻找Regex模式返回与我当前函数类似的结果

Flask Jinja2如果语句总是计算为false&

查看pandas字符列是否在字符串列中

Python如何导入类的实例

大型稀疏CSR二进制矩阵乘法结果中的错误

如何将列表从a迭代到z-以抓取数据并将其转换为DataFrame?

为什么按下按钮后屏幕的 colored颜色 保持不变?

如何将验证器应用于PYDANC2中的EACHY_ITEM?

普洛特利express 发布的人口普查数据失败

3.我无法找到制作这种三角形图案的方法

Parsel无法访问嵌套元素

在FastAPI/Starlette中使用WebSockets时如何运行后台任务?

使代码更快地解决哪个字母代表给定公式中的哪个数字