修改管理员操作

时间:2011-04-08 07:31:22

标签: django

如何修改默认管理操作“delete_selected”

3 个答案:

答案 0 :(得分:13)

Action docs

删除所选:

  

如果您希望覆盖此行为,   简单地写一个自定义动作   完成你的删除   首选方式 - 例如,通过   为每个调用Model.delete()   选定的项目。

这个discussion有一个覆盖模型'delete_selected'的例子。它可以像这样实现:

class SomeModelAdmin(admin.ModelAdmin):
    actions = ['custom_delete_selected']
    def custom_delete_selected(self, request, queryset):
         #custom delete code
    custom_delete_selected.short_description = "Delete selected items"

    def get_actions(self, request):
        actions = super(SomeModelAdmin, self).get_actions(request)
        del actions['delete_selected']
        return actions 

答案 1 :(得分:2)

http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#adding-actions-to-the-modeladmin

您可以编写自定义操作,因此覆盖delete_selected操作将允许您执行所需的任何功能(请参阅页面顶部提示覆盖delete()操作的警告框)

答案 2 :(得分:0)

DOC:Disabling actions

禁用网站范围的操作

admin.site.disable_action('delete_selected')

否则覆盖ModelAdmin.get_actions