Django admin 删除所有Django管理模型的删除权限

Django admin 删除所有Django管理模型的删除权限,django-admin,Django Admin,我有大约50个以ModelAdmin为基类的管理模型。现在我想删除所有50个模型的删除功能。我认为有两种方法 “重定义”的“删除”权限方法可返回false并删除所有50个模型的“删除选定的”操作(工作量很大) 执行与django.contrib.admin.AdminModel中上述相同的操作。这意味着修改源代码 我不想改变源代码。除了上述两种方法之外,他们还有其他的方法吗。创建一个包含这两个调整的admin mixin类,并将其添加到现有50个ModelAdmins的基类中 四,。Monkey

我有大约50个以ModelAdmin为基类的管理模型。现在我想删除所有50个模型的删除功能。我认为有两种方法

  • “重定义”的“删除”权限方法可返回false并删除所有50个模型的“删除选定的”操作(工作量很大)
  • 执行与django.contrib.admin.AdminModel中上述相同的操作。这意味着修改源代码

  • 我不想改变源代码。除了上述两种方法之外,他们还有其他的方法吗。创建一个包含这两个调整的admin mixin类,并将其添加到现有50个ModelAdmins的基类中

    四,。Monkeypatch ModelAdmin(将影响所有型号,而不仅仅是您的50个)

    五,。Monkeypatch你的管理员(如果它是你所有的应用程序模型,你可以通过注册的管理员进行迭代并匹配属于你的应用程序的管理员)

    我个人会选择3。这些ModelAdmin还有其他共同点吗?添加基类/mixin是一次性的工作,然后您可以很容易地进行其他更改


    注意:如果您想确保不删除模型,最好确保其默认管理器的QuerySet也不删除:

    可以使用:
    admin.site.disable_action('delete_selected')
    删除站点范围的删除操作。但是每个记录的“删除”选项如何?有类似的方法吗?