删除django admin中的按钮/链接

gad*_*dss 2 python django django-admin

我有一个应用程序,我正在使用django管理员,但我的应用程序不允许删除数据和django管理员有一个delete按钮/链接.我已经删除了delete action.

我的问题是,如何删除deletedjango管理页面中的按钮/链接?

Dan*_*air 8

class MyAdmin(ModelAdmin):

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

    def has_delete_permission(self, request, obj=None):
        return False
Run Code Online (Sandbox Code Playgroud)

如果未给出删除权限,则单个对象的"删除"按钮将消失.仍将显示更改列表"操作"(选择要应用于复选框的对象的列表),因为您可能有权删除某些对象.您可以使用上面的代码删除它们.

CLARIFICATION(对于downvoters):admin检查当前用户是否具有删除权限,然后相应地显示/隐藏按钮.你写了"我的应用程序不允许删除",所以我假设你带走了权限.超级用户不会查看权限,超级用户总是返回"是的,我有权限".如果您希望超级用户按钮消失,则必须使用上面的代码.对于其他用户,只需根据Secator的答案取消许可.


Mar*_*mro 7

不要删除或更改管理员中的任何内容.

而是删除用户/组删除给定模型的权限.如果用户没有删除权限,则删除按钮不会出现在与该模型相关的任何页面上.