根据权限管理django admin过滤器

Managing django admin filters according to permissions

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

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

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

您可以覆盖 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 []