The default “delete selected” admin action in Django

后端 未结 8 1639
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-14 09:24

How can I remove or change the verbose name of the default admin action \"delete selected X item\" in the Django admin panel?

8条回答
  •  清歌不尽
    2020-12-14 10:00

    Alternatively to Googol's solution, and by waiting for delete_model() to be implemented in current Django version , I suggest the following code.

    It disables the default delete action for current AdminForm only.

    class FlowAdmin(admin.ModelAdmin):
        actions = ['delete_model']
    
        def get_actions(self, request):
            actions = super(MyModelAdmin, self).get_actions(request)
            del actions['delete_selected']
            return actions
    
        def delete_model(self, request, obj):
            for o in obj.all():
                o.delete()
        delete_model.short_description = 'Delete flow'
    
    admin.site.register(Flow, FlowAdmin)
    

提交回复
热议问题