1. from django import forms
    2. class ContactForm(forms.Form):
    3. subject = forms.CharField(max_length=32)
    4. message = forms.CharField(widget=forms.Textarea)
    5. email = forms.EmailField()
    6. cc_myself = forms.BooleanField(required=Flase)

    注意:required默认是Ture

    基本操作

    cleaned_data属性,用来获取已经通过表单校验的数据

    1. form.cleaned_data

    表单数据绑定

    1. # views.py
    2. def show(request):
    3. contact_form = ContactForm(request.POST)

    表单数据验证

    1. if not contact_form.is_valid():
    2. print(contact_form.errors) # EX: {'email': ['Enter a valid email address.']}

    表单数据清洗,clean(),也可以使用cleaned_data属性表示相同效果

    1. # 得到清洗后的所有数据,EX: {'subject':'HelloWorld', 'message':'Hello', ...}
    2. contact_form.clean()

    注意:在使用clean方法时,只会返回通过检验的字段,如果有字段不符合要求则不会返回。
    查看所有数据,data属性

    1. contact_form.data

    注意:data属性会返回所有原始提交的数据

    表单数据视图渲染

    1. return render(request, 'contact.html', {'contact_form', contact_form})
    1. # contact.html
    2. <form>
    3. {{ contact_form }}
    4. <input type="submit+--">
    5. </form>