Django基于类的视图 - DeleteView - 如何禁用确认要求

时间:2012-03-03 00:56:09

标签: django confirmation django-class-based-views

我正在切换到基于类的视图。我还使用JavaScript来确认客户端的任何删除。 Django DeleteView需要一个我不关心的删除确认模板。

是否有任何简单的方法可以禁用Django中任何类型的删除确认?

class EntryDeleteView(DeleteView):
    model = Entry
    success_url = reverse_lazy('entry_list')   # go back to the list on successful del
    template_name = 'profiles/entry_list.html' # go back to the list on successful del

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(EntryDeleteView, self).dispatch(*args, **kwargs)

2 个答案:

答案 0 :(得分:7)

您应该从客户端进行POST查询(使用AJAX或POST表单)。那是因为如果您允许通过GET删除某些内容,那么您的服务将容易受到CSRF的攻击。有人会通过电子邮件或其他方式向您的管理员发送电子邮件,您将遇到麻烦。

答案 1 :(得分:1)

DeleteViewGET上呈现确认页面,如果您使用POSTDELETE,则会删除该对象。如果你的JS在确认后对网址进行了POST,那么它应该可以正常工作。