Формы, созданные из forms.Form
, настраиваются вами вручную. Вам лучше использовать их для форм, которые напрямую не взаимодействуют с моделями. Например, контактную форму или форму подписки на рассылку, где вы не обязательно взаимодействуете с базой данных.
Где, как форма, созданная из forms.ModelForm
, будет создана автоматически, а затем может быть изменена вами. Лучшие примеры действительно из превосходной документации, представленной на веб-сайте Django.
forms.Form
:
Документация: Объекты формы
Пример нормальной формы, созданной с помощью 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
:
Документация: Создание форм из моделей
Прямо из документов:
Если ваша форма будет использоваться для
напрямую добавить или отредактировать модель Django,
Вы можете использовать ModelForm
, чтобы избежать
Дублирование описания вашей модели.
Пример формы модели, созданной с помощью forms.Modelform
:
from django.forms import ModelForm
from . import models
# Create the form class.
class ArticleForm(ModelForm):
class Meta:
model = models.Article
Эта форма автоматически имеет те же типы полей, что и модель Article
, из которой она была создана.