# Django 3.2.11.dev 文档

# 模型表单函数

模型表单 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` 是一个可调用的函数，它接收一个模型字段并返回一个表单字段。

  `widgets` 是一个映射到部件的模型字段名的字典。

  `localized_fields` 是一个应本地化的字段名称列表。

  `labels` 是一个映射到标签的模型字段名的字典。

  `help_texts` 是一个映射到帮助文本的模型字段名的字典。

  `error_messages` 是一个模型字段名的字典，映射到错误信息的字典。

  `field_classes` 是映射到表单字段类的模型字段名的字典。

  见 ModelForm的工厂函数 的用法示例。

  你必须通过关键字参数 `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)

  返回给定 `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`, and `can_delete_extra` are passed through to `formset_factory()`. See formsets for details.

  见 模型表单集 的用法示例。

  Changed in Django 3.2:

  增加了 `absolute_max` 和 `can_delete_extra` 参数。

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

  使用 `modelformset_factory()` 返回一个 `InlineFormSet`，默认值为 `formset=``BaseInlineFormSet`、`can_delete=True` 和 `extra=3`。

  如果你的模型有多个 `ForeignKey` 到 `parent_model`，你必须指定一个 `fk_name`。

  参见 内联表单集 的用法示例。

  Changed in Django 3.2:

  增加了 `absolute_max` 和 `can_delete_extra` 参数。