【问题标题】:Managing django admin filters according to permissions根据权限管理 django admin 过滤器
【发布时间】:2023-10-23 08:03:01
【问题描述】:

我正在创建一个python django 项目,而在管理员中我想让它像这样运行:

用户打开customer 窗口,该窗口将显示所有customers 的列表,然后如果用户有某个permission,则位置过滤器可见,但如果没有permission,则过滤器不可见.

这可能吗?如果可以,那怎么办?

【问题讨论】:

    标签: python django filter permissions


    【解决方案1】:

    您可以覆盖 ModelAdminget_list_filter 方法并检查其中的权限。

    例子:

    MyAdmin(admin.ModelAdmin):
        def get_list_filter(self, request):
            if request.user.has_perm('some_perm'):
                return ['filter_1', 'filter_2', ......]
            else:
                return []
    

    【讨论】: