如何从Django Admin界面禁用"Recent Actions"小部件?

Ans*_*hul 5 django django-models django-admin

我不想在django管理站点中显示最近的动作小部件.我不知道如何完成这项工作.

Dev*_*osh 6

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

有条件地启用或禁用操作ModelAdmin.get_actions(request)最后,您可以通过重写ModelAdmin.get_actions()有条件地启用或禁用每个请求(因此也可以是每个用户)的操作.

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

大多数情况下,您将使用此方法有条件地从超类收集的列表中删除操作.例如,如果我只希望名称以"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
Run Code Online (Sandbox Code Playgroud)

我在https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/上编辑了你可能会发现更多这样的答案.

  • *第一行回答了问题。第二行开始描述了另一个问题的解决方案(这个问题没有提出) (2认同)