我有一个Django表单,正在正常的Django视图中进行验证。我试图弄清楚如何提取纯错误(无HTML格式)。以下是我目前正在使用的代码。
return json_response({ 'success' : False, 'errors' : form.errors })
这样,我从Django得到了臭名昭著的代理对象错误。将每个错误强制为Unicode也不会成功,因为每个错误的__unicode__方法都会被有效地称为HTML大小化。
__unicode__
有任何想法吗?
编辑:
对于那些感兴趣的人,这是的定义json_response:
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')
经过 一番 摸索,测试了不同的东西后得到了它。注意:我不确定这是否也适用于国际化。这还需要为每个字段输入第一个验证错误,但是对其进行修改以获取所有错误应该相当容易。
return json_response({ 'success' : False, 'errors' : [(k, v[0].__unicode__()) for k, v in form.errors.items()] })