如何修改默认管理操作“delete_selected”
答案 0 :(得分:13)
删除所选:
如果您希望覆盖此行为, 简单地写一个自定义动作 完成你的删除 首选方式 - 例如,通过 为每个调用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)
禁用网站范围的操作
admin.site.disable_action('delete_selected')
否则覆盖ModelAdmin.get_actions