美文网首页
Django表单使用校验后的数据

Django表单使用校验后的数据

作者: Chaweys | 来源:发表于2020-11-02 07:33 被阅读0次

    使用校验后的数据
    调用表单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.'}]}
    >>>
    

    相关文章

      网友评论

          本文标题:Django表单使用校验后的数据

          本文链接:https://www.haomeiwen.com/subject/gfwsvktx.html