删除django admin中的按钮/链接

时间:2012-03-05 08:59:50

标签: python django django-admin

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

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

2 个答案:

答案 0 :(得分: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

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

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

答案 1 :(得分:7)

请勿删除或更改管理员中的任何内容。

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