简单的例子。
1) app/forms.py
from django import forms
class PersonForm(forms.Form):
GENDER_CHOICES = (
('', '----------'),
('MALE', 'Male'),
('FEMALE', 'Female'),
)
MARITAL_STATUS_CHOICES = (
('', '----------'),
('SINGLE', 'Single'),
('MARRIED', 'Married'),
)
first_name = forms.CharField(label='First name', max_length=255)
middle_name = forms.CharField(label='Middle name', max_length=255)
last_name = forms.CharField(label='Last name', max_length=255)
gender = forms.ChoiceField(label='Gender', choices=GENDER_CHOICES)
martial_status = forms.ChoiceField(label='Martial status', choices=MARITAL_STATUS_CHOICES)
2) app/views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import PersonForm
def person(request):
if request.method == 'POST':
form = PersonForm(request.POST)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/some-url/xyz')
else:
form = PersonForm()
context = {
'form': form,
}
return render(request, 'app/templates/person.html', context)
3) app/templates/person.html
{% for field in form.visible_fields %}
{{ field.label_tag }}
{{ field }}
<span style='color:red'>{{ field.errors.as_text }}</span>
{% endfor %}
阅读更多关于 Django 表单的信息here。