Django Form 表单

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  

 

posted @ 2018-06-26 15:58  SunQi  阅读(108)  评论(0编辑  收藏  举报