Django - 如何批量删除

时间:2016-06-06 17:07:10

标签: python django

我正在使用CRUD,列表的一个功能是批量删除。用户选择(复选框)他想要删除的行,然后按“删除所选”按钮。

我在CRUD中使用通用视图。我的单删除,例如:

class ContentDeleteView(NextRedirectMixin, DeleteView):
    model = Content
    template_name = 'content_delete.html'    

    def get_success_url(self):
        messages.add_message(self.request, messages.SUCCESS, "Content deleted successfully.")
        return reverse('content:content-detail') 

我的问题是创建批量删除视图。我可以使用Django核心功能进行批量删除吗?我想避免为此安装应用程序。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你应该推出自己的删除视图,这是一个基本的例子:

class BulkDeleteView(View):
    model = None

    def post(self, request, *args, **kwargs):
        delete_ids = request.POST['delete_ids'].split(',')  # should validate
        self.model.objects.filter(pk__in=delete_ids).delete()
        return render / redirect

所以基本的想法是继承View并推出你自己的基础BulkDeleteView的实现