模型表单函数 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/ref/forms/models
跳转至:导航、​搜索

模型表单函数

模型表单 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 factory function 示例用法。

您必须通过关键字参数 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()。

参数 formset、extra、can_delete、can_order、max_num、validate_max、min_num、 validate_min、absolute_max 和 can_delete_extra 被传递到 formset_factory()。 有关详细信息,请参阅 表单集 。

有关示例用法,请参阅 模型表单集 。

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.X1

如果您的型号有多个 ForeignKey 到 parent_model,则必须指定一个 fk_name。

请参阅 内联表单集 以获取示例用法。

3.2 版更改: 添加了 absolute_max 和 can_delete_extra 参数。