---
title: "Model Form Functions"
version: 2.1
locale: pl
source: https://docs.djangoproject.com/pl/2.1/ref/forms/models/
canonical: https://djangodocs.dev/pl/2.1/ref/forms/models/
---
# Model Form Functions

Model Form API reference. For introductory material about model forms, see the
[Creating forms from models](/pl/2.1/topics/forms/modelforms/) topic guide.

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

Returns a [`ModelForm`](/pl/2.1/topics/forms/modelforms/#django.forms.ModelForm) class for the given `model`.
You can optionally pass a `form` argument to use as a starting point for
constructing the `ModelForm`.

`fields` is an optional list of field names. If provided, only the named
fields will be included in the returned fields.

`exclude` is an optional list of field names. If provided, the named
fields will be excluded from the returned fields, even if they are listed
in the `fields` argument.

`formfield_callback` is a callable that takes a model field and returns
a form field.

`widgets` is a dictionary of model field names mapped to a widget.

`localized_fields` is a list of names of fields which should be localized.

`labels` is a dictionary of model field names mapped to a label.

`help_texts` is a dictionary of model field names mapped to a help text.

`error_messages` is a dictionary of model field names mapped to a
dictionary of error messages.

`field_classes` is a dictionary of model field names mapped to a form
field class.

See [ModelForm factory function](/pl/2.1/topics/forms/modelforms/#modelforms-factory) for example usage.

You must provide the list of fields explicitly, either via keyword arguments
`fields` or `exclude`, or the corresponding attributes on the form’s
inner `Meta` class. See [Selecting the fields to use](/pl/2.1/topics/forms/modelforms/#modelforms-selecting-fields) for more
information. Omitting any definition of the fields to use will result in
an [`ImproperlyConfigured`](/pl/2.1/ref/exceptions/#django.core.exceptions.ImproperlyConfigured) exception.

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

Returns a `FormSet` class for the given `model` class.

Arguments `model`, `form`, `fields`, `exclude`,
`formfield_callback`, `widgets`, `localized_fields`, `labels`,
`help_texts`, `error_messages`, and `field_classes` are all passed
through to [`modelform_factory()`](#django.forms.models.modelform_factory).

Arguments `formset`, `extra`, `max_num`, `can_order`,
`can_delete` and `validate_max` are passed through to
[`formset_factory()`](/pl/2.1/ref/forms/formsets/#django.forms.formsets.formset_factory). See [formsets](/pl/2.1/topics/forms/formsets/) for details.

See [Model formsets](/pl/2.1/topics/forms/modelforms/#model-formsets) for example usage.

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

Returns an `InlineFormSet` using [`modelformset_factory()`](#django.forms.models.modelformset_factory) with
defaults of `formset=`[`BaseInlineFormSet`](/pl/2.1/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet),
`can_delete=True`, and `extra=3`.

If your model has more than one [`ForeignKey`](/pl/2.1/ref/models/fields/#django.db.models.ForeignKey) to
the `parent_model`, you must specify a `fk_name`.

See [Inline formsets](/pl/2.1/topics/forms/modelforms/#inline-formsets) for example usage.
