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

un3*_*33k 4 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)
Run Code Online (Sandbox Code Playgroud)

ilv*_*var 7

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

  • 不.看:我是邪恶的黑客,我知道你网站管理员的电子邮件.我给他发了一个链接到一些带有可爱小猫图片的页面,并在页面上附加了一些类似<img rel="nofollow noreferrer" src ="http:// your_site/admin/profile/delete /"width = 1 height = 1>的内容.管理员看小猫,并删除他的整个个人资料.浏览器不允许在其他站点上进行POST,并且Django具有一些CSRF保护,因此这不适用于POST,这就是删除需要POST的原因. (8认同)
  • ilvar忘记提到的是管理员可能有一个活跃的登录会话到他自己的站点,从而绕过了登录步骤. (2认同)