Функции формы модели¶
Справочник 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, edit_only=False)[исходный код]¶ Возвращает класс
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.Аргумент
edit_only
позволяет preventing new objects creation.Пример использования см. в Модельные наборы форм.
Changed in Django 4.1:Был добавлен аргумент
edit_only
.
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)[исходный код]¶ Возвращает
InlineFormSet
, используяmodelformset_factory()
с значениями по умолчаниюformset=
BaseInlineFormSet
,can_delete=True
иextra=3
.Если ваша модель имеет более одного
ForeignKey
кparent_model
, вы должны указатьfk_name
.Пример использования см. в Встроенные наборы форм.
Changed in Django 4.1:Был добавлен аргумент
edit_only
.