from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=32)
message = forms.CharField(widget=forms.Textarea)
email = forms.EmailField()
cc_myself = forms.BooleanField(required=Flase)
注意:required默认是Ture
基本操作
cleaned_data属性,用来获取已经通过表单校验的数据
form.cleaned_data
表单数据绑定
# views.py
def show(request):
contact_form = ContactForm(request.POST)
表单数据验证
if not contact_form.is_valid():
print(contact_form.errors) # EX: {'email': ['Enter a valid email address.']}
表单数据清洗,clean(),也可以使用cleaned_data属性表示相同效果
# 得到清洗后的所有数据,EX: {'subject':'HelloWorld', 'message':'Hello', ...}
contact_form.clean()
注意:在使用clean方法时,只会返回通过检验的字段,如果有字段不符合要求则不会返回。
查看所有数据,data属性
contact_form.data
注意:data属性会返回所有原始提交的数据
表单数据视图渲染
return render(request, 'contact.html', {'contact_form', contact_form})
# contact.html
<form>
{{ contact_form }}
<input type="submit+--">
</form>