我在模型中定義了delete()方法。我用它來清除緩存並刪除大拇指。當我刪除管理員中的一個元素時,在它的詳細信息(編輯模式)中,高速緩存被清除並且所有的大拇指被刪除。 但是,當我想一次刪除多個元素 - 檢查元素列表上的複選框 - 元素被刪除,但cahce和縮略圖不會被刪除,因此我的模型刪除方法不會被刪除:/管理員列表刪除和模型刪除()方法
我修復它?
我在模型中定義了delete()方法。我用它來清除緩存並刪除大拇指。當我刪除管理員中的一個元素時,在它的詳細信息(編輯模式)中,高速緩存被清除並且所有的大拇指被刪除。 但是,當我想一次刪除多個元素 - 檢查元素列表上的複選框 - 元素被刪除,但cahce和縮略圖不會被刪除,因此我的模型刪除方法不會被刪除:/管理員列表刪除和模型刪除()方法
我修復它?
它在the documentation的第一部分。出於效率原因,Django Admin在queryset對象上調用delete
。這完全繞過了每個實例的刪除方法。閱讀文檔。
如果要覆蓋此行爲,簡單的寫一個完成刪除您的首選方式自定義操作 - 例如,通過調用Model.delete()爲每個選擇的項目。
如文檔中描述的那樣,你需要重寫delete selected
行動:
def delete_selected(modeladmin, request, queryset):
for element in queryset:
element.delete()
delete_selected.short_description = "Delete selected elements"
class ElementAdmin(admin.ModelAdmin):
actions = [delete_selected]
admin.site.register(Element, ElementAdmin)
所以,如果我將定義在管理delete_model - 它是否行得通呢? – robos85 2011-03-08 10:41:23
閱讀我鏈接到的文檔。你需要創建一個「行動」。 – 2011-03-08 10:46:04