Django Form 表单
生成HTML表单元素
检查表单元素的合法性
验证如果错误,重复显示表单
数据类型转换
Form相关的对象
Widget 渲染成HTML元素的工具
Field Form对象中的一个字段
Form 一系列Field对象的集合
Form Media 用来渲染表单的CSS与JS资源
继承forms.Form实现表单功能
Form实例方法is_valid()检查表单是否合法, 合法数据会被放到cleaned_data属性中
1 #继承创建表单示例 2 3 #form.py 4 from django import forms 5 6 7 class RemarkForm(forms.Form): 8 subject = forms.CharField(max_length=100 ,label='留言标题') 9 mail = forms.EmailField(label='电子邮件') 10 topic = forms.ChoiceField(choices=( 11 ('leve1', '差评'), 12 ('leve2', '中评'), 13 ('leve3', '好评'), 14 ),label='选择评分') 15 message = forms.CharField(label='留言内容',widget=forms.Textarea) 16 cc_myself = forms.BooleanField(required=False ,label='订阅该贴') 17 #也可以在与model结合 18 19 #student.py 20 class StudentModel(models.Model): 21 sname = models.CharField(max_length = 100,) 22 #模型与表单关联需要导入ModelForm模块 23 from django.forms import ModelForm 24 25 class StudentForm(ModelForm): 26 class Meta: 27 model = StudentModel 28 fields = ('sname') #必须与model类的名字一样 29 #也可以在与model结合 30 31 #student.py 32 class StudentModel(models.Model): 33 sname = models.CharField(max_length = 100,) 34 #模型与表单关联需要导入ModelForm模块 35 from django.forms import ModelForm 36 37 class StudentForm(ModelForm): 38 class Meta: 39 model = StudentModel 40 fields = ('sname') #必须与model类的名字一样 41 #简单HTML 42 43 <form action="{% url 'django_test:hello' %}"> 44 {% for field in forms %} 45 {{ field.label_tag }}:{{ field }} 46 {{ field.errors }} 47 {% endfor %} 48 <input type="submit"> 49 </form> 50 #Form实例属性 51 52 {{ field.label_tag }} #表单元素标签 53 {{ field }} #表单元素体 54 {{ field.errors }} #表单元素错误 55