django文件说 https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.errors
访问errors属性以获取错误消息字典:
f.errors {'发件人':['输入有效的电子邮件地址。'],'主题':['此字段是必填字段。' ]}
然而,当我尝试打印forms.errors时,我得到了html代码。
def login(request):
if request.method == "GET":
return render(request, r"login.html")
else:
form = LoginForm(request.POST)
if form.is_valid():
return HttpResponse("valid")
else:
print form.errors
return HttpResponse("Invalid")
Django version 1.6.4, using settings 'test_proj.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
<ul class="errorlist"><li>username<ul class="errorlist"><li>Ensure this value ha
s at most 3 characters (it has 6).</li></ul></li></ul>
我需要获取原始错误以显示ajax消息,例如
response_json = {"status": "error", "content": "Username is too short"}
如果还有其他方法可以获取原始错误消息,您也可以告诉我。谢谢!
答案 0 :(得分:4)
这只是调用print
的人工制品:隐含地转换为字符串,而ErrorList类的__str__
method调用其as_ul
方法输出为HTML - 这样您就可以输出模板中的错误列表只需执行{{ form.errors }}
。
对象本身的内容不是HTML格式,你可以通过print repr(form.errors)
看到它。