Django admin 删除默认的 delete select action 操作

By 刘志军, 2019-07-06, 分类: qa

django

如图:

export_selected.png

如果要移除默认的 delete_selected 操作,可以通过重写 get_actions 方法实现。

class MyModelAdmin(admin.ModelAdmin):
    ...
    # 所有用户都不可见
    def get_actions(self, request):
        actions = super().get_actions(request)
        if 'delete_selected' in actions:
            del actions['delete_selected']
        return actions

    # 针对某个特定的用户不可见
    def get_actions(self, request):
        actions = super().get_actions(request)
        if request.user.username[0].upper() != 'J':
            if 'delete_selected' in actions:
                del actions['delete_selected']
        return actions

有问题可以扫描二维码和我交流

关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2014-01-18
Django+Ubuntu+Nginx+Gunicorn应用部署
2014-02-25
仅仅是一个轮子
2019-05-20
重写 Django Admin 的 Delete Selected 动作
2014-03-21
Django-Compressor 静态文件压缩
2014-02-08
Django自定义User模型
2019-05-24
Django 数据模型 ForeignKey 的 on_delete 属性的可选值
2014-02-08
Django url()函数详解
2014-03-31
Django Signals 从实践到源码分析
2018-11-25
Django 最佳实践
2019-05-16
Django Admin 日期字段格式化