django - 如何从 Django 管理界面禁用 "Recent Actions"小部件?

标签 django django-models django-admin

我不想显示 最近的 Action 小部件 在 Django 管理站点中。我不知道如何完成。

最佳答案

您可以覆盖 admin/index.html模板以禁用显示。有
您可能想要更改/删除的侧边栏块。

有条件地启用或禁用操作
ModelAdmin.get_actions(请求)
最后,您可以通过覆盖 ModelAdmin.get_actions() 有条件地启用或禁用针对每个请求(因此也基于每个用户)的操作。

这将返回一个允许操作的字典。键是 Action 名称,值是 (function, name, short_description) 元组。

大多数情况下,您将使用此方法有条件地从父类(super class)收集的列表中删除操作。例如,如果我只希望名称以“J”开头的用户能够批量删除对象,我可以执行以下操作:

class MyModelAdmin(admin.ModelAdmin):
    ...

    def get_actions(self, request):
        actions = super(MyModelAdmin, self).get_actions(request)
        if request.user.username[0].upper() != 'J':
            del actions['delete_selected']
        return actions

我编辑了您可能会在 https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/ 找到更多类似的答案

关于django - 如何从 Django 管理界面禁用 "Recent Actions"小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674250/

相关文章:

django - 基于外键的过滤

python - 在 python 中类型转换

django - 在 Django 的测试中连接模拟和客户端

Django:在成功保存表单后自定义消息

django - 我是否要在django应用的每个页面上粘贴Google Analytics(分析),或者仅在基本模板上粘贴?

python - Django 模型方法 - create_or_update

python - 对没有迁移的应用程序的依赖 : %s"% key[0]) in the Django

database - 在django模型中,如何让所有的表名都没有app标签?

mysql - 如何在不使用 Django 模型的情况下使用 MySQL 中的完整数据库

python - 在 Django Admin 中的自定义列表过滤中将 modeladmin 作为参数传递