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

Описание API модельных форм. Полное руководство смотрите в разделе Создание форм из моделей.

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 является словарём имён полей модели привязанных к классам полей формы.

Обратитесь к документации на Функция-фабрика модельных форм для примеров использования.

Вы должны явно определять список полей, через именованные аргументы fields или exclude, или через соответствующие атрибуты внутреннего класса Meta формы. Обратитесь к документации на Указываем какие поля использовать для подробностей. Игнорирование определения используемых полей вызовет исключение ImproperlyConfigured.

Изменено в Django 1.8:

Ранее, если поля не указаны, формы включала все поля модели.

Добавлено в Django 1.9:

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

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)

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

Аргументы model, form, fields, exclude, formfield_callback, widgets, localized_fields, labels, help_texts, error_messages и field_classes все проходят через функцию modelform_factory().

Аргументы formset, extra, max_num, can_order, can_delete и validate_max проходят через функцию formset_factory(). Обратитесь к документации на Наборы форм для подробностей.

Обратитесь к документации на Наборы модельных форм для примеров использования.

Добавлено в Django 1.9:

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

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)

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

Если ваша модель содержит больше одного внешнего ключа (ForeignKey) к родительской модели (parent_model), обязательно указывайте fk_name.

Обратитесь к документации на Встраиваемые наборы форм для примеров использования.

Добавлено в Django 1.9:

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