Model Form Functions

模型表单API参考。有关模型表单的介绍材料,请参阅Creating forms from models主题指南。

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)[source]

Returns a ModelForm class for the given model. 您可以选择传递form参数,以作为构建ModelForm的起点。

fields是字段名称的可选列表。如果提供,只有命名字段将包含在返回的字段中。

exclude是字段名称的可选列表。如果提供,则将从返回的字段中排除指定的字段,即使它们在fields参数中列出。

widgets是映射到窗口小部件的模型字段名称的字典。

formfield_callback是一个可调用,它接受一个模型字段并返回一个表单字段。

localized_fields是应该本地化的字段名称的列表。

labels是映射到标签的模型字段名称的字典。

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

error_messages是映射到错误消息字典的模型字段名称的字典。

有关示例用法,请参见ModelForm factory function

您必须通过关键字参数fieldsexclude或表单内部Meta类别上的相应属性显式提供字段列表。有关详细信息,请参见Selecting the fields to use省略要使用的字段的任何定义将导致ImproperlyConfigured异常。

在Django 1.8中更改:

以前,允许省略字段列表,并生成带有模型的所有字段的表单。

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)[source]

为给定的model类返回FormSet类。

Arguments model, form, fields, exclude, formfield_callback, widgets, localized_fields, labels, help_texts, and error_messages are all passed through to modelform_factory().

参数formsetextramax_numcan_ordercan_deletevalidate_max传递到formset_factory()有关详情,请参阅Formsets

有关示例用法,请参见Model formsets

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)[source]

Returns an InlineFormSet using modelformset_factory() with defaults of formset=BaseInlineFormSet, can_delete=True, and extra=3.

如果您的模型有多个ForeignKeyparent_model,则必须指定fk_name

有关示例用法,请参见Inline formsets