删除django中的多个对象

Dea*_*ean 89 django django-views

我需要使用网页从django中的数据库中选择几个要删除的对象.没有可供选择的类别,所以我无法从中删除所有这些类别.我是否必须实现自己的删除表单并在django中处理它或django有办法已经这样做了吗?正如它在管理界面中实现的那样.

Mat*_*ngo 168

您可以删除任何您想要的QuerySet.例如,要使用某些Post模型删除所有博客帖子

Post.objects.all().delete()
Run Code Online (Sandbox Code Playgroud)

并删除任何具有未来发布日期的帖子

Post.objects.filter(pub_date__gt=datetime.now()).delete()
Run Code Online (Sandbox Code Playgroud)

但是,您需要想出一种缩小QuerySet范围的方法.如果您只想要一个视图来删除特定对象,请查看删除一般视图.

编辑:

很抱歉对于这个误会.我认为答案介于两者之间.要实现自己的,请合并ModelForms和通用视图.否则,请查看提供类似功能的第三方应用.在一个相关的问题,建议是django-filter.

  • @Dean,看看那个删除视图.或者你可以自己编写视图...我的意思是你最终可能会收到一个PK列表并在你的模型上调用delete ...`MyModel.objects.filter(id__in = request.POST.getlist('delete_list') ).delete()`我确定你想要确保一个随机的人不能通过猜测PK来删除数据库中的所有对象. (7认同)