删除 Django 管理中的默认删除操作

新手上路,请多包涵

如何删除 Django 管理中的默认删除操作?以下会起作用吗?

 actions = [ ]

原文由 Dawn T Cherian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 484
2 个回答

这有效:

 def get_actions(self, request):
    actions = super().get_actions(request)
    if 'delete_selected' in actions:
        del actions['delete_selected']
    return actions

根据下面的 Django 文档,这也是推荐的方法:

有条件地启用或禁用操作

原文由 Dawn T Cherian 发布,翻译遵循 CC BY-SA 4.0 许可协议

在您的管理类中,定义 has_delete_permission 以返回 False

 class YourModelAdmin(admin.ModelAdmin):
    ...

    def has_delete_permission(self, request, obj=None):
        return False

然后,它不会显示删除按钮,也不允许您在管理界面中删除对象。

原文由 falsetru 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题