使用额外参数重写django model.py的删除方法
问题描述:
我有一个使用删除方法接受2个参数的模型。我需要重写什么以确保我的自定义删除方法是从django admin调用的?我使用的版本仍然没有delete_model
,所以我不能使用它。使用额外参数重写django model.py的删除方法
答
我最终什么事做在写我自己的自定义删除利用我的自定义删除方法,而不是使用的查询集的批量删除
行动class MyModelAdmin(admin.ModelAdmin):
actions = ['custom_delete_selected',]
def get_actions(self, request):
actions = super(MyModelAdmin, self).get_actions(request)
del actions['delete_selected']
return actions
def custom_delete_selected(self, request, queryset):
#Meant to cancel the default delete operation in admin page
#so that the system uses the model's delete method instead of queryset.delete
for obj in queryset:
obj.delete("param1", "param2")
if queryset.count() == 1:
message_bit = "1 item was"
else:
message_bit = "%s items were" % queryset.count()
self.message_user(request, "%s successfully deleted." % message_bit)
custom_delete_selected.short_description = "Delete selected items"
这并没有真正回答这个问题。如上所述,在问题“我使用的版本仍然没有delete_model,所以我不能使用它” – domino 2011-07-07 10:14:43