django - 在 JSON 中返回纯 Django 表单错误

我有一个 Django 表单,我正在一个普通的 Django View 中验证它。我试图弄清楚如何提取纯错误(没有 HTML 格式)。以下是我目前正在使用的代码。

return json_response({ 'success' : False,
                       'errors' : form.errors })

有了这个,我从 Django 中得到了臭名昭著的代理对象错误。将每个错误强制转换为 Unicode 也无济于事,因为这样每个错误的 __unicode__ 方法都会被有效地调用 HTML 化。

有什么想法吗?

编辑:

对于那些感兴趣的人,这是json_response的定义:

def json_response(x):
    import json
    return HttpResponse(json.dumps(x, sort_keys=True, indent=2),
                        content_type='application/json; charset=UTF-8')

最佳答案

这似乎已得到改进。以下适用于 Django 1.3:

return json_response({
    'success': False,
    'errors': dict(form.errors.items()),
})

不再需要 __unicode__ 或惰性翻译。这也为每个字段提供了完整的错误数组。

https://stackoverflow.com/questions/986406/

相关文章:

javascript - 使用 Javascript 更新 JSON 对象

json - JSON Schema 中的 "required"与 "optional"有什么区别

javascript - 如何对 Javascript 对象进行排序,或将其转换为数组?

jquery - 如何在 jQuery 中遍历这个 JSON 对象?

java - 如何解析 JSON 并将其值转换为数组?

ruby-on-rails - 我应该如何格式化对我的 rails 应用程序的 JSON POST

java - 应用程序配置文件

javascript - Backbone.js 模型与集合

c# - 返回 Json,但它包含反斜杠 "\",我不想要

ios - Twitter api 文本字段值被截断