Django表单验证:以JSON格式获取错误

Sat*_*nix 4 python django validation json

我有这个非常简单的Django表单

from django import forms

class RegistrationForm(forms.Form):
    Username = forms.CharField()
    Password = forms.CharField()
Run Code Online (Sandbox Code Playgroud)

我手动管理它,不使用模板引擎.相反,我使用ajax POST发送数据并期望收到返回验证错误.当我使用其他框架时,我曾经在键值对中接收JSON格式的验证错误(键是带错误的字段的名称,值是错误消息).

{
  Username: "This field is required.",
  Password: "This field is required.",
}
Run Code Online (Sandbox Code Playgroud)

我试图在Django中实现相同的结果,但我不明白如何访问原始错误消息(相对于单个字段)并本地化它们.

form.errors允许访问HTML代码(如此处所述:显示ModelForms的django表单验证错误).我不需要那个.我更喜欢form.Username.validationError这样的东西:这样的东西存在吗?

如果是,另外我还想知道验证错误消息是否自动转换为用户语言,如果没有,则是最好的方法.

Leo*_*rdo 5

Django 1.7让你发送表格错误作为Json.您只需要使用以下形式的错误form.errors.as_json().

我必须说,这是图书馆的一个很好的补充.


Ale*_*lex 5

#from django.http import JsonResponse    

return JsonResponse({'success': False,
                      'errors': [(k, v[0]) for k, v in form.errors.items()]})
Run Code Online (Sandbox Code Playgroud)