gpt4 book ai didi

ajax - Django 删除带有确认弹出窗口和多个成功 url 的 CBV

转载 作者:行者123 更新时间:2023-12-05 08:54:40 25 4
gpt4 key购买 nike

在我的例子中,实例模型可以从以下位置删除:

  • 一个ListView继承View
  • 一个DetailView继承View

默认情况下,调用删除 View 时:

  • get 函数调用“confirm_delete”模板。相反,我希望出现一个弹出窗口/模式,如果在模式中单击 delete 将删除对象
  • 如果 delete 操作在 ListView 上,删除后用户将保留在 ListView 上,ListView 内容将更新

  • 如果 delete 操作在 DetailView 上,删除后用户将被重定向到 ListView 或另一个页面(取决于其他规则)

--

所以我想知道如何在删除时执行 Ajax 调用,如何根据操作前的位置在删除中有条件成功 url。

最佳答案

对于 DetailView,您可以简单地使用如下表单:

<form action="{% url "app:delete" object.id %}" method="post">
{% csrf_token %}

<button onclick="return confirm('Are you sure?');">Delete</button>
</form>

点击按钮将打开一个确认对话框。如果用户单击OK,表单将被提交。这将删除对象并重定向到与 confirm_delete 页面重定向相同的方式。

对于 ListView 可以简单地向 DeleteView 发送一个 POST 请求,成功后重新加载当前页面以更新 ListView 。如何发送 AJAX 请求取决于您是否使用任何库,但使用 jQuery 可以按如下方式完成:

$.ajax('{% url "app:delete" object.id %}', {
method: 'POST',
success: function() {
window.location.reload();
},
});

注意:不要忘记包含 csrf_token 以使 AJAX 请求正常工作。查看docs获取更多信息。

关于ajax - Django 删除带有确认弹出窗口和多个成功 url 的 CBV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48863917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com