我正在切换到基于类的视图。我还使用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)
答案 0 :(得分:7)
您应该从客户端进行POST查询(使用AJAX或POST表单)。那是因为如果您允许通过GET删除某些内容,那么您的服务将容易受到CSRF的攻击。有人会通过电子邮件或其他方式向您的管理员发送电子邮件,您将遇到麻烦。
答案 1 :(得分:1)
DeleteView
在GET
上呈现确认页面,如果您使用POST
或DELETE
,则会删除该对象。如果你的JS在确认后对网址进行了POST
,那么它应该可以正常工作。