我在管理页面中添加了一项操作,允许用户将所选记录导出到Excel工作表。现在我需要能够允许一些用户能够导出数据。我有一个UserProfile
模型,它有一个can_export
布尔字段。
如果只有将can_export
字段设置为True,我才能在django admin中显示“导出到Excel”操作?
我试图在admin.py中找到一种获取请求对象的方法,并在设置操作之前执行IF语句,但没有运气。我得到一个name'request'当然没有定义错误。
if request.user.get_profile().can_export:
actions = [export_data()]
答案 0 :(得分:10)
来自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