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组件使用的主要内容,如果未能解决你的问题,请参考以下文章

django from组件

记Antd组件-Form简单使用步骤

如何使用 redux-form 在不同组件(向上一个组件)中显示 FieldArray 中的字段

ant design的form组件使用总结

Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合

Django之forms组件使用