Django表单使用校验后的数据

2020-11-02  本文已影响0人  Chaweys

使用校验后的数据
调用表单is_valid()方法时会执行数据校验,当所有字段数据均合法时,该方法返回True,否则返回False。
执行校验时,Django为表单对象创建了cleaned_data属性,通过校验的数据是"有效的",被保存在表单的cleaned_data属性中。
cleaned_data属性只能在执行校验之后访问,否则会触发AttributeError异常。


>>> class bound_test(forms.Form):
...     name=forms.CharField(max_length=50)
...     age=forms.IntegerField(max_value=50)
...
>>> d=bound_test({"name":"mike","age":20})

>>> d.cleaned_data
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'bound_test' object has no attribute 'cleaned_data'  【因为未提前做校验,所以报错:AttributeError异常。】

>>> d.is_valid()       【校验表单】
True
>>> d.cleaned_data     【获取被校验后的数据】
{'age': 20, 'name': 'mike'}

>>> d=bound_test({"name":"mike","age":80})
>>> d.is_valid()       【校验表单】
False
>>> d.cleaned_data     【获取被校验后的数据,因为age限制了最大值50,所以超过了50的值不被校验成功】
{'name': 'mike'}

>>> d.errors           【获取校验失败的错误信息】
{'age': ['Ensure this value is less than or equal to 50.']}

>>> d.errors.as_json() 【获取校验失败的错误信息,转成json格式】
'{"age": [{"code": "max_value", "message": "Ensure this value is less than or equal to 50."}]}'

>>> d.errors.get_json_data() 【获取校验失败的错误信息,转成json格式2】
{'age': [{'code': 'max_value', 'message': 'Ensure this value is less than or equal to 50.'}]}
>>>
上一篇下一篇

猜你喜欢

热点阅读