【发布时间】:2012-02-26 22:24:04
【问题描述】:
我需要使用网页从 django 的数据库中选择要删除的几个对象。没有可供选择的类别,所以我不能像那样从所有类别中删除。我是否必须实现我自己的删除表单并在 django 中处理它,或者 django 是否已经有办法做到这一点?在管理界面中实现。
【问题讨论】:
标签: django django-views
我需要使用网页从 django 的数据库中选择要删除的几个对象。没有可供选择的类别,所以我不能像那样从所有类别中删除。我是否必须实现我自己的删除表单并在 django 中处理它,或者 django 是否已经有办法做到这一点?在管理界面中实现。
【问题讨论】:
标签: django django-views
您可以删除任何您想要的查询集。例如,删除所有带有某个 Post 模型的博客文章
Post.objects.all().delete()
并删除任何具有未来发布日期的帖子
Post.objects.filter(pub_date__gt=datetime.now()).delete()
但是,您确实需要想出一种方法来缩小查询集的范围。如果您只是希望视图删除特定对象,请查看delete generic view。
编辑:
很抱歉造成误解。我认为答案介于两者之间。要实现您自己的,请结合 ModelForms 和 generic views。否则,请查看提供类似功能的 3rd 方应用程序。在related question 中,推荐的是django-filter。
【讨论】:
ModelForms 的通用视图。
MyModel.objects.filter(id__in=request.POST.getlist('delete_list')).delete()我相信你想要一些东西来确保随机的人可以' t 通过猜测 PK 来删除数据库中的所有对象。
filter(foo).delete() 方法。