首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Admin list delete和model delete()方法

Admin list delete和model delete()方法
EN

Stack Overflow用户
提问于 2011-03-08 17:08:13
回答 2查看 1.3K关注 0票数 1

我在我的模型中定义了delete()方法。我用它来清除缓存和删除拇指。当我在admin中删除一个元素时,在它的详细信息(编辑模式)中,缓存被清除,所有的拇指都被删除。但是,当我想要一次删除几个元素时-选中元素列表上的复选框-元素会被删除,但cahce和缩略图不会被删除,所以我的model delete方法没有被创建:/

我怎么才能修复它?

EN

回答 2

Stack Overflow用户

发布于 2011-03-08 18:09:40

它位于the documentation的第一部分。出于效率的原因,Django Admin在queryset对象上调用delete。这完全绕过了每个实例的delete方法。阅读文档。

如果您希望覆盖此行为,只需编写一个自定义操作,该操作将以您喜欢的方式完成删除-例如,通过为每个选定项调用Model.delete()。

票数 3
EN

Stack Overflow用户

发布于 2013-02-06 11:57:39

如文档中所述,您需要覆盖delete selected操作:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5230383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档