python - 删除 django admin 中的按钮/链接

标签 python django django-admin

我有一个应用程序,我正在使用 django admin,但我的应用程序不允许删除数据,而 django admin 有一个 delete 按钮/链接。我已经删除了删除操作

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

最佳答案

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

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

澄清(针对反对者):管理员检查当前用户是否具有删除权限,然后相应地显示/隐藏按钮。你写了“我的应用程序不允许删除”所以我假设你拿走了权限。 super 用户不会在权限中查找, super 用户总是返回“是的,我有那个权限”。如果你想让 super 用户的按钮消失,你必须使用我上面的代码。对于其他用户,只需根据 Sector 的回答取消权限即可。

关于python - 删除 django admin 中的按钮/链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9563935/

相关文章:

python 3.0 "with"语法错误?

python - 带有 djorm-ext-pgfulltext 的 Django Postgres pg_trgm 模块用于全文搜索

javascript - Charts.js 2.5 不显示在 Django 中

python:命名具有两个单词名称的模块

python生成器对象混淆

python - 在子屏幕中显示父级 django admin python

django - Django manage.py:迁移在依赖之前应用

javascript - Django 表单 : How to edit fields that aren't on the model itself

python - Jupyter Notebook 和 JupyterLab 有什么区别?

javascript - 不同服务器上的跨域ajax请求头