Django Admin 禁用编辑链接与添加删除权限配置指南

沿途有光
沿途有光
发布时间:2026-10-13| 7人浏览过
原创

本文详解如何在 Django Admin 中禁用模型列表的编辑链接及添加、删除按钮。通过设置 List_display_links 为 None 隐藏编辑入口,并重写 has_add_permission 和 has_delete_permission 方法限制操作权限。此外,结合 fieldsets 或 readonly_fields 可进一步防止通过 URL 直接访问编辑页面,实现更严格的管理员权限控制。

Django Admin 权限限制概述

在 Django Admin 管理后台中,有时需要对特定模型的操作权限进行限制,例如禁用列表页中的编辑链接以及添加和删除按钮。

具体的实现方法如下所示。

核心代码实现


class MyModelAdmin(models.ModelAdmin):
 ...
 List_display_links = None #禁用编辑链接
 
 def has_add_permission(self, request):
 # 禁用添加按钮
    return False

  def has_delete_permission(self, request, obj=None):
   # 禁用删除按钮
    return False

  def get_actions(self, request):
   # 在actions中去掉‘删除'操作
    actions = super(GradesManagementAdmin, self).get_actions(request)
    if request.user.username[0].upper() != 'J':
      if 'delete_selected' in actions:
        del actions['delete_selected']
    return actions

注意事项与补充防护

需要特别注意的是,上述方法仅从前端界面隐藏了编辑超链接,用户仍有可能通过手动输入 URL 的方式直接访问编辑页面。为了彻底杜绝此类风险,建议配合配置 fieldsets 或将相关字段设置为 readonly_fields,从而在数据层面实现完整的编辑保护。

以上内容即为 Django Admin 中禁用编辑链接及添加删除操作的完整解决方案,供各位开发者参考与实践。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。