如何将 REST 请求中的错误返回到 django-tastypie?

发布于 2025-01-01 15:22:40 字数 245 浏览 0 评论 0原文

我有一个简单的表单,可以将数据传递到主干网,然后主干网将请求提交到 tastypie REST API。验证是在服务器端完成的。

当特定字段出现错误时,我将如何返回该错误并在主干中处理它,以便它可以与字段一起显示?请记住,主干网期望返回一个模型,而不是一堆错误(返回具有相关字段的错误数组听起来不错,但我有一个特殊的主干解析方法,可以从美味派响应中获取对象 - 发送回随机东西可能会让它窒息......?)。

很困惑为什么这不是一项常见的任务。

I have a simple form that passes data to backbone, which in turn, submits requests to a tastypie REST API. The validation is done server side.

When a specific field has an error, how would I go about returning that error and handling it in backbone so it can be displayed alongside the field? Keeping in mind that backbone is expecting a model in return and not a bunch of errors (returning an array of errors with the associated fields sounds fine but I have a special backbone parse method that gets the objects out of the tastypie response - sending back random stuff will probably make it choke...?).

Confused as to why this isn't a common task to do.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

远山浅 2025-01-08 15:22:40

Tastypie 应该返回您的验证错误,并带有 http 错误级别代码 4xx,而不是成功级别代码 2xx。

因此,Backbone 应该触发错误回调,而不是成功回调。

由于正在触发错误回调,因此 Backbone 不会调用解析或成功时发生的任何其他操作。

因此,您需要为 tastypie 错误创建一个处理程序,并将该错误处理程序函数作为错误回调传递。

从那里,您可以手动解析响应正文并处理错误,但您认为适合您的应用程序。

Tastypie should be returning your validation errors with an http error-level code 4xx, not a success-level code 2xx.

Because of this, Backbone should be triggering the error callback, not the success callback.

Because the error callback is being triggered, Backbone doesn't invoke parse or anything else that happens on success.

So, you need to create a handler for tastypie errors, and pass that error handler function as the error callback.

From there, you can manually parse the body of the response and deal with the errors however you see fit for your app.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文