Функции формы модели

Справочник 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)[исходный код]

Возвращает класс ModelForm для заданного model. По желанию можно передать аргумент 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)[исходный код]

Возвращает класс FormSet для заданного класса model.

Аргументы 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(). Подробности см. в разделе formsets.

Пример использования см. в Модельные наборы форм.

Changed in Django 3.2:

Добавлены аргументы absolute_max и can_delete_extra.

Changed in Django 4.0:

Был добавлен аргумент renderer.

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)[исходный код]

Возвращает InlineFormSet, используя modelformset_factory() с значениями по умолчанию formset=BaseInlineFormSet, can_delete=True и extra=3.

Если ваша модель имеет более одного ForeignKey к parent_model, вы должны указать fk_name.

Пример использования см. в Встроенные наборы форм.

Changed in Django 3.2:

Добавлены аргументы absolute_max и can_delete_extra.

Changed in Django 4.0:

Был добавлен аргумент renderer.

Вернуться на верх