django 【form表单】

#########################根据类来生成表单#################
'''
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

'''
原文地址:https://www.cnblogs.com/weibiao/p/7281743.html