没有确认模板的Django DeleteView

yan*_*v14 18 python django

我在模板中使用Django DeleteView,我创建了一个URL和视图.是否可以跳过加载_confirm_delete模板的过程,并立即发布删除.

bmi*_*lac 49

DeleteView响应POSTGET 请求,GET请求显示确认模板,同时POST删除实例.

您可以发送POST请求,无需使用以下表单进行确认:

<form method="POST" action="{% url "your_delete_url_name" %}">
   {% csrf_token %}<input type="submit" value="DELETE">
</form>
Run Code Online (Sandbox Code Playgroud)

如果您不想使用链接而不是表单按钮,请使用一些javascript制作隐藏表单,这将在链接点击时提交.

使用GET请求更新或删除是不好的做法,但如果你真的坚持你可以get在类视图中使用快捷方法post,即:

def get(self, *args, **kwargs):
    return self.post(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

  • 在 Django 4.xx 中,似乎还需要添加: ``` def post(self, request, *args, **kwargs): self.object = self.get_object() self.object.delete() return redirect(self .get_success_url()) ``` (2认同)

Ami*_*irM 11

或者你可以get()在你的方法中重新定义方法DeleteView:

class YourDeleteView(DeleteView):

    model = YourModel
    success_url = '<success_url>'

    def get(self, request, *args, **kwargs):
        return self.post(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

但要小心,确保这不会影响其他功能.