# Django 4.1.8.dev20230308103347 ドキュメント

# モデルフォーム関数

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 関数 を参照してください。

  フィールドのリストは、キーワード引数 `fields` や `exclude`、もしくはフォームの内部の `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, edit_only=False)

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

  引数 `model`、`form`、`fields`、`exclude`、`formfield_callback`、`widgets`、`localized_fields`、`labels`、`help_texts`、`error_messages`、`field_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.

  The `edit_only` argument allows preventing new objects creation.

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

  Changed in Django 4.0:

  The `renderer` argument was added.

  Changed in Django 4.1:

  The `edit_only` 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, edit_only=False)

  `formset=``BaseInlineFormSet`、`can_delete=True`、`extra=3` をデフォルトとする、 `modelformset_factory()` を使った `InlineFormSet` を返します。

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

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

  Changed in Django 4.0:

  The `renderer` argument was added.

  Changed in Django 4.1:

  The `edit_only` argument was added.