模型表单函数
模型表单 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, 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()。
参数 formset
、extra
、can_delete
、can_order
、max_num
、validate_max
、min_num
、validate_min
、absolute_max
、can_delete_extra
和 renderer
被传递给 formset_factory()。详情请见 表单集。
The edit_only
argument allows preventing new objects creation.
见 模型表单集 的用法示例。
Changed in Django 4.0:
增加了 renderer
参数。
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)
使用 modelformset_factory() 返回一个 InlineFormSet
,默认值为 formset=
BaseInlineFormSet、can_delete=True
和 extra=3
。
如果你的模型有多个 ForeignKey 到 parent_model
,你必须指定一个 fk_name
。
参见 内联表单集 的用法示例。
Changed in Django 4.0:
增加了 renderer
参数。
Changed in Django 4.1:
The edit_only
argument was added.