gpt4 book ai didi

ajax - Django & Ajax - 没有返回语句的 View

转载 作者:行者123 更新时间:2023-12-01 15:51:30 26 4
gpt4 key购买 nike

在我的 Django 应用程序中,我有一个项目列表,每个项目旁边都有一个“删除”选项。我希望用户能够点击“删除”按钮,让它发送一个 $.post 到 Django View ,在那里它会删除那个实例。成功删除此实例后,我将在 javascript 中触发另一个 Ajax 请求以重绘列表而不删除已删除的实例。

我的问题:如果我实际上没有向 $.post 返回值,那么我应该使用 ajax 来执行此操作吗? Ajax 是专门用于检索信息的吗?即使我实际上没有返回任何东西,Django View 是否也需要返回 HttpResponse ?

处理“删除”请求和 View 之类的正确方法是什么?

谢谢。

最佳答案

Django View 总是必须返回一个 HttpResponse 对象,或者其中之一是 subclasses .只需尝试返回其他内容并查看 Django 的 react (它应该会导致 500 错误)。

对于您描述的情况,您可以使用 jQuery 中的 $.post 方法。如果你这样做,你肯定应该返回一个字符串来指示成功删除或错误。如果您不考虑错误,您最终可能会从用户正在查看的页面中删除某些内容,而不会实际删除服务器上的项目,这可能会导致您的用户出现不一致和混淆。

然后,您的 UI 应该为正在删除的对象具有特定状态 - 即,用户已按下删除但服务器尚未回答*。然后,如果出现错误(您要么在成功函数中收到一个指示错误的字符串,要么调用了错误函数,请参阅 jQuery docs about $.post )您可以将其报告给用户并将项目返回到正常状态。如果删除成功,您可以继续从页面中删除该项目(或在删除该项目时执行您打算执行的任何操作)。

*(一个项目被删除的一个很好的指标可能是降低它的不透明度(让它有点透明)并添加一个小旋转轮或另一个“正在进行”删除的指标。)

关于ajax - Django & Ajax - 没有返回语句的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392645/

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