2. form组件使用
Posted fuyi2345
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2. form组件使用相关的知识,希望对你有一定的参考价值。
1. 校验前端来的数据
2. 生成页面的html标签
3. 保留上次输入的内容,清空密码
form类创建
from django import forms class UserInfo(forms.Form): user = forms.CharField(max_length = 32) age = forms.InterField( ) email = forms.EmailField( )
使用
fm = UserInfor("user":"fu", "age":20, "email":"123@qq.com")
检查数据是否合法:fm.is_vaild( ) 返回True 和 False
查看所有合法的数据 ret = fm.cleaned_data( ) 用get获取到user, age , email的值
查看不合法数据和原因 ret = fm.error( )
form标签渲染
1. fm.as_p 渲染出所有的表单
2. fm.user , fm.age 渲染指定表单 可控性强 , 在表单类中指定 label属性 fm.user.label
3. 依靠循环写入
% for hm in fm % hm.label fm hm.error % endfor %
在视图函数中, 传入前端的保存正确的校验数据 fm = fm.cleaned_data( )
在下一次输入的时候不用再次输入已经正确的数据
form标签添加css样式
from django import forms
class UserInfo(forms.Form):
msg = "required":"改字段不能为空" user = forms.CharField(max_length = 32)
age = forms.InterField( )
email = forms.EmailField( widget = widgets.TextInput(attrs=‘class‘: ‘form-control‘),
label = "邮箱",
error_msg = msg,
initial = "默认值"
)
此处给email标签添加了btn的css样式,字段为空时报错, 渲染时显示的默认值
钩子
from django import forms
from django.core.exceptions import ValidationError
# 登录表单
class UserInfoForm(forms.Form):
user = forms.charField(max_length = 32)
password = forms.CharField(max_length = 32)
email = forms.EmailField( )
def clean_user(self):
user = self.cleaned_data.get("user")
ret = UserInfo.objects.filter(user=user) # 在数据库中查到数据
if ret :
return ret
else:
raise validateError("用户名不存在")
以上是关于2. form组件使用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 redux-form 在不同组件(向上一个组件)中显示 FieldArray 中的字段
Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合