Django Admin 禁用编辑链接与添加删除权限配置指南
本文详解如何在 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 中禁用编辑链接及添加删除操作的完整解决方案,供各位开发者参考与实践。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













