一尘不染

在JSON中返回纯Django表单错误

json

我有一个Django表单,正在正常的Django视图中进行验证。我试图弄清楚如何提取纯错误(无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')

阅读 173

收藏
2020-07-27

共1个答案

一尘不染

经过 一番
摸索,测试了不同的东西后得到了它。注意:我不确定这是否也适用于国际化。这还需要为每个字段输入第一个验证错误,但是对其进行修改以获取所有错误应该相当容易。

return json_response({ 'success' : False,
                       'errors' : [(k, v[0].__unicode__()) for k, v in form.errors.items()] })
2020-07-27