django-admin 后台删除model触发事件、重写admin删除按钮
·
列表删除按钮:
编辑删除按钮:
注: 编辑中页面的删除按钮触发的是delete_model()方法。
下面将列表删除按钮和编辑删除按钮功能统一:
from django.contrib import admin
class SchoolClassAdmin(admin.ModelAdmin):
verbose_name = "班级"
list_display = ("id", 'grade', 'num', 'school')
list_filter = ('grade', 'num',)
actions = ['really_delete_selected']
def get_actions(self, request):
actions = super(SchoolClassAdmin, self).get_actions(request)
del actions['delete_selected']
return actions
def delete_model(self, request, obj):
qs = SchoolClass.objects.filter(id=obj.id)
self.really_delete_selected(request, qs)
def really_delete_selected(self, request, queryset):
for obj in queryset:
obj.delete()
#dosomething
if queryset.count() == 1:
message_bit = "1 条记录被"
else:
message_bit = "%s 条记录被" % queryset.count()
self.message_user(request, "%s成功删除." % message_bit)
really_delete_selected.short_description = "-删除"
更多推荐
所有评论(0)