【问题标题】:How can I disable the "Recent Actions" widget from Django Admin interface?如何从 Django 管理界面禁用“最近的操作”小部件?
【发布时间】:2011-10-04 04:38:03
【问题描述】:

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

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

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

    有条件地启用或禁用操作 ModelAdmin.get_actions(请求) 最后,您可以通过覆盖 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
    

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

    【讨论】:

    • *第一行回答了问题。第二行以后描述了另一个问题的解决方案(这个问题中没有提出)
    • 如何覆盖 admin/index.html 模板来禁用显示?
    猜你喜欢
    • 2011-02-10
    • 2021-11-10
    • 2020-11-27
    • 2011-08-13
    • 2014-06-24
    • 2017-03-17
    • 2021-03-27
    • 1970-01-01
    • 2018-08-08
    相关资源
    最近更新 更多