在django admin中隐藏操作(如果没有';我没有许可

在django admin中隐藏操作(如果没有';我没有许可,django,django-admin,Django,Django Admin,我在我的管理页面中添加了一个操作,允许用户将所选记录导出到excel工作表。现在,我需要能够只允许一些用户能够导出数据。我有一个UserProfile模型,它有一个can\u exportboolean字段 如果django admin中的can\u Export字段设置为True,我如何才能仅在django admin中显示“导出到Excel”操作 我试图在admin.py中找到一种方法来获取请求对象,并在设置操作之前执行IF语句,但没有成功。我得到一个名字“请求”当然是没有定义的错误 if

我在我的管理页面中添加了一个操作,允许用户将所选记录导出到excel工作表。现在,我需要能够只允许一些用户能够导出数据。我有一个
UserProfile
模型,它有一个
can\u export
boolean字段

如果django admin中的
can\u Export
字段设置为True,我如何才能仅在django admin中显示“导出到Excel”操作

我试图在admin.py中找到一种方法来获取请求对象,并在设置操作之前执行IF语句,但没有成功。我得到一个名字“请求”当然是没有定义的错误

if request.user.get_profile().can_export:
    actions = [export_data()]
从手册()中:


在你做了IF语句之后发生了什么?继续显示操作还是继续隐藏操作?它不起作用:名称“请求”未定义如何为您的操作创建新的自定义权限?
    class MyModelAdmin(admin.ModelAdmin):
        ...

        def get_actions(self, request):
            actions = super(MyModelAdmin, self).get_actions(request)
            if request.user.username[0].upper() != 'J':
                if 'delete_selected' in actions:
                    del actions['delete_selected']
            return actions