4

我正在切换到基于类的视图。我还使用 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)
4

2 回答 2

8

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

于 2012-03-03T01:17:17.340 回答
1

如果您使用 a或,则DeleteView呈现确认页面GET并删除该对象。如果您的 JS在确认后对 url 执行了操作,它应该可以按照您的意愿工作。POSTDELETEPOST

于 2012-03-03T01:15:45.880 回答