You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Django-Jazzmin时405登出错误的解决方法求助

Django 5.0.2 + Django-Jazzmin 登出405错误解决办法

问题背景

基于Django 5.0.2搭建项目,使用Django-Jazzmin自定义管理面板,执行登出操作时返回405(方法不允许)错误,尝试直接修改虚拟环境内my-virtual_env\Lib\site-packages\jazzmin\templates\admin\base.html的登出表单代码后仍未解决。

解决步骤

1. 用项目内模板覆盖,不直接修改依赖包文件

直接修改虚拟环境中的模板文件既不安全,后续依赖更新还会覆盖改动。正确操作:

  • 在项目根目录新建templates/admin文件夹
  • 从虚拟环境的jazzmin/templates/admin路径下复制base.html到项目的templates/admin目录
  • 编辑项目内的base.html,将登出部分替换为POST表单:
<form method="post" action="{% url 'admin:logout' %}">
    {% csrf_token %}
    <button type="submit" class="dropdown-item">
        <i class="fas fa-sign-out-alt mr-2"></i> {% trans 'Log out' %}
    </button>
</form>
  • 确保项目settings.py中的模板配置包含项目自身的templates目录:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        # 其他配置项...
    },
]

2. 升级Django-Jazzmin到兼容版本

部分旧版本Jazzmin未适配Django 5.x的登出视图规则,执行升级命令:

pip install --upgrade django-jazzmin

升级后重启开发服务器,多数兼容问题可直接解决。

3. 确认admin路由未被自定义修改

Django 5.x中admin:logout视图默认仅接受POST请求,确保urls.py中admin路由为默认配置:

from django.contrib import admin

urlpatterns = [
    path('admin/', admin.site.urls),
    # 其他路由...
]

4. 清除模板缓存

若修改模板后未生效,执行缓存清除命令并重启服务:

python manage.py clearcache

内容的提问来源于stack exchange,提问作者Mohamed Reda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:10:25