cleaned_data属性是调用了clean()方法之后才有的,如果在表单验证中使用 clean_字段名 方式定义了某个字段清洗函数,那么django会优先调用这个函数,最后调用clean()函数,如下:
def clean_mobile(self):
mobile = self.cleaned_data['mobile'] #这样子写是错误的,这时cleaned_data属性并未生成
调用清洗函数,其实质就是将表单类型转化为python数据类型,假如表单中有两个字段,分别是mobile,password,在表单类中定义了clean_mobile清洗字段mobile(即由clean_mobile()方法完成字段mobile由表单类型转化为python数据类型),那么字段password将由内置的clean()方法清洗,转换为python类型(即cleaned_data属性中只有password这一个字段,可通过login_form.cleaned_data['password']取得这个值)。data属性包含了表单的所有字段值,如下:
正确示例:
以上代码只是告诉读者可以使用data 属性取得表单数据。 也可以使用形如:register_post_form.password.value 的形式在前端获取表单数据。
注:读者可使用断点方式查看表单对象含有的字段。