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

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

本文详解如何在 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 相关产品和应用

全部下载

专题列表