建立表单的标准流程
- 第一步:建立models.py的模型,形成与forms、views的对应关系。
#models.py
class Employee(models.Model):
eid = models.CharField(max_length=200,default='1')
name = models.CharField(max_length=200,null=True)
dept_code = models.CharField(max_length=200,null=True)
GENDER_CHOICES = (
(u'Male', u'Male'),
(u'Female', u'Female'),
)
gender = models.CharField(max_length=200,choices=GENDER_CHOICES,null=True)
on_board = models.BooleanField(null=True)
Range_CHOICES = (
(u'R1', u'R1'),
(u'R2', u'R2'),
(u'R3', u'R3'),
(u'R4', u'R4'),
)
Range = models.CharField(max_length=200,choices=Range_CHOICES,null=True)
def __str__(self):
return self.name
- 第两步:比照models的属性,建立forms。
#修改forms.py
class EmployeeForm(forms.Form):
eid = forms.CharField()
name = forms.CharField()
dept_code = forms.CharField()
gender = forms.CharField()
on_board = forms.BooleanField()
Range = forms.CharField()
- 第三步:通过views.py来建立models和form的关联。
#views.py
def Employee_form(request):
if request.method == 'POST' and request.POST:
form = EmployeeForm(data=request.POST)
if form.is_valid():
eid = form.cleaned_data['eid']
name = form.cleaned_data['name']
dept_code = form.cleaned_data['dept_code']
gender = form.cleaned_data['gender']
on_board = form.cleaned_data['on_board']
Range = form.cleaned_data['Range']
Employee.objects.create(eid=eid,name=name,dept_code=dept_code,gender=gender
,on_board=on_board,Range=Range)
return HttpResponseRedirect('/admin/')
else:
form = EmployeeForm()
else:
form = EmployeeForm()
return render(request, 'myclass/Employee_form.html',context={'form':form})
- 第四步:修改urls,来映射views。
#myclass/urls.py
urlpatterns = [
path('Employee_form/',views.Employee_form,name='Employee_form'),
]
- 第五步:填写表单,检查数据是否提交至admin。若有错误,则需重新检查第一步到第四步。