モデルフォーム関数

Model Form の API リファレンスです。モデルフォームについての導入用の資料は、モデルからフォームを作成する を参照してください。

modelform_factory

modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None, localized_fields=None, labels=None, help_texts=None, error_messages=None, field_classes=None)

与えられた model に対して ModelForm を返します。必要に応じて form 引数を渡すことで、ModelForm を構築する開始地点として使うことができます。

fields は、フィールド名の省略可能なリストです。提供された場合、指定されたフィールドだけが、返されるフィールドの中に含まれるようになります。

exclude は、フィールド名の省略可能なリストです。提供された場合、fields 引数の中に指定されていたとしても、指定されたフィールドが返されるフィールドから除かれます。

formfield_callback は、モデルフィールドを取ってフォームフィールドを返す callable です。

widgets は、ウィジェットにマッピングされたモデルフィールド名のディクショナリです。

localized_fields は、ローカライズされるべきフィールドの名前のリストです。

labels は、ラベルにマッピングされたモデルフィールド名のディクショナリです。

help_texts は、ヘルプテキストにマッピングされたモデルフィールド名のディクショナリです。

error_messages は、エラーメッセージにマッピングされたモデルフィールド名のディクショナリです。

field_classes は、フォームフィールドクラスにマッピングされたモデルフィールド名のディクショナリです。

使用例は ModelForm factory 関数 を参照してください。

フィールドのリストは、キーワード引数 fieldsexclude、もしくはフォームの内部の Meta クラスで対応する属性を使って、明示的に提供する必要があります。詳しくは 使うフィールドを選択する を参照してください。使うフィールドの定義を省略すると、ImproperlyConfigured 例外を引き起こします。

modelformset_factory

modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None, absolute_max=None, can_delete_extra=True, renderer=None)

与えられた model クラスに対して、FormSet クラスを返します。

引数 modelformfieldsexcludeformfield_callbackwidgetslocalized_fieldslabelshelp_textserror_messagesfield_classes は、すべて modelform_factory() を通して引き渡されます。

Arguments formset, extra, can_delete, can_order, max_num, validate_max, min_num, validate_min, absolute_max, can_delete_extra, and renderer are passed through to formset_factory(). See formsets for details.

使用例は モデルのフォームセット を参照してください。

Changed in Django 3.2:

The absolute_max and can_delete_extra arguments were added.

Changed in Django 4.0:

The renderer argument was added.

inlineformset_factory

inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None, absolute_max=None, can_delete_extra=True, renderer=None)

formset=BaseInlineFormSetcan_delete=Trueextra=3 をデフォルトとする、 modelformset_factory() を使った InlineFormSet を返します。

モデルが parent_model に複数の ForeignKey を持つ場合, fk_name を指定する必要があります。

使用例は インラインフォームセット を参照してください。

Changed in Django 3.2:

The absolute_max and can_delete_extra arguments were added.

Changed in Django 4.0:

The renderer argument was added.