---
title: "モデルフォーム関数"
version: 2.1
locale: ja
source: https://docs.djangoproject.com/ja/2.1/ref/forms/models/
canonical: https://djangodocs.dev/ja/2.1/ref/forms/models/
---
# モデルフォーム関数

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

## `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`](/ja/2.1/topics/forms/modelforms/#django.forms.ModelForm) を返します。必要に応じて `form` 引数を渡すことで、`ModelForm` を構築する開始地点として使うことができます。

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

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

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

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

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

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

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

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

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

使用例は [ModelForm factory 関数](/ja/2.1/topics/forms/modelforms/#modelforms-factory) を参照してください。

フィールドのリストは、キーワード引数 `fields` や `exclude`、もしくはフォームの内部の `Meta` クラスで対応する属性を使って、明示的に提供する必要があります。詳しくは [使うフィールドを選択する](/ja/2.1/topics/forms/modelforms/#modelforms-selecting-fields) を参照してください。使うフィールドの定義を省略すると、[`ImproperlyConfigured`](/ja/2.1/ref/exceptions/#django.core.exceptions.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)`

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

引数 `model`、`form`、`fields`、`exclude`、`formfield_callback`、`widgets`、`localized_fields`、`labels`、`help_texts`、`error_messages`、`field_classes` は、すべて [`modelform_factory()`](#django.forms.models.modelform_factory) を通して引き渡されます。

引数 `formset`、`extra`、`max_num`、`can_order`、`can_delete` 、`validate_max` は、[`formset_factory()`](/ja/2.1/ref/forms/formsets/#django.forms.formsets.formset_factory) を通して引き渡されます。詳しくは [formsets](/ja/2.1/topics/forms/formsets/) をご覧ください。

使用例は [モデルのフォームセット](/ja/2.1/topics/forms/modelforms/#model-formsets) を参照してください。

## `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)`

`formset=`[`BaseInlineFormSet`](/ja/2.1/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet)、`can_delete=True`、`extra=3` をデフォルトとする、 [`modelformset_factory()`](#django.forms.models.modelformset_factory) を使った `InlineFormSet` を返します。

モデルが `parent_model` に複数の [`ForeignKey`](/ja/2.1/ref/models/fields/#django.db.models.ForeignKey) を持つ場合,  `fk_name` を指定する必要があります。

使用例は [インラインフォームセット](/ja/2.1/topics/forms/modelforms/#inline-formsets) を参照してください。
