#########################根据类来生成表单#################
'''
django form类
通模型类的属性映射到数据库的字段一样,表单类的字段会映射到HTML的<input>表单元素
ModelForm通过一个Form映射模型类的字段到HTML表单的<input>元素
Form表单功能
1、自动生成HTML表单元素
2、检查表单数据的合法性
3、如果验证错误,重新显示表单(数据不会重置)
Form相关的对象
widget: 用来渲染成HTML元素的工具
field: form对象中的一个字段
form: 一系列的field对象集合,验证和显示HTML元素
from media : 渲染表单的css和javascript资源
定义Form有两种方式: 参见此项目中的testform
方式一: 直接继承Form
from django import forms
class CustormForm(forms.Form):
name = forms.CharField(max_length=64)
qq = forms.CharField(max_length=64)
def customerform(request):
return render(request,'testform/testform.html',{'form':CustormForm})
方法二:结合model,继承django.forms.ModelForm
from django.forms import ModelForm
from crm import models
class CustomerForm(ModelForm):
class Meta:
model = models.Customer
fields = '__all__'
def customerform(request):
return render(request, 'testform/testform.html', {'form': CustomerForm})
前端渲染
<form method="POST">
{% for field in form %}
{{ field.name }} {{ field }}
{% endfor %}
</form>
后端验证
form = CustomerForm(request.POST)
if form.is_valid(): #查看验证是否通过
field属性
{{ field }} field.lable field.lable_tag field.value field.errors
另外 form_obj
'''