3

我在我的管理页面中添加了一个操作,允许用户将选定的记录导出到 Excel 工作表。现在我需要能够只允许一些用户能够导出数据。我有一个UserProfile具有can_export布尔字段的模型。

仅当can_export字段设置为 True 时,如何仅在 django admin 中显示“导出到 Excel”操作?

我试图在 admin.py 中找到一种方法来获取请求对象并在设置操作之前执行 IF 语句,但没有运气。我当然得到一个 name'request' is not defined 错误。

if request.user.get_profile().can_export:
    actions = [export_data()]
4

1 回答 1

12

来自 FineManual ( https://docs.djangoproject.com/en/1.5/ref/contrib/admin/actions/ ):

    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
于 2013-04-22T18:01:29.317 回答