http://stackoverflow.com/questions/2303268/djangos-forms-form-vs-forms-modelform
form没有和model绑定,你可以自己设置任何字段进行处理,ModelForm则是和model绑定的,例如你的表单是生成 一篇文章,那么这个form和文章 model绑定就可以了。 一般来说,使用比较多的是 ModelForm
Forms created from forms.Form are manually configured by you. You're better off using these for forms that do not directly interact with models. For example a contact form, or a newsletter subscription form, where you might not necessarily be interacting with the database.
Where as a form created from forms.ModelForm will be automatically created and then can later be tweaked by you. The best examples really are from the superb documentation provided on the Django website.
forms.Form:
Documentation: Form objects
Example of a normal form created with forms.Form:
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField()
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
forms.ModelForm:
Documentation: Creating forms from models
Straight from the docs:
If your form is going to be used to directly add or edit a Django model, you can use a ModelForm to avoid duplicating your model description.
Example of a model form created with forms.Modelform:
from django.forms import ModelForm
# Create the form class.
class ArticleForm(ModelForm):
class Meta:
model = Article
This form automatically has all the same field types as the Article model it was created from.