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

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)

Возвращает класс ModelForm для указанной model. Вы можете опционально передавать аргумент form, чтобы использовать форму в качестве стартовой точки при конструировании ModelForm.

Аргумент fields является необязательным списком имён полей. Если он указан, то только перечисленные в нём поля будут созданы в модельной форме.

Аргумент exclude является необязательным списком имён полей. Если он указан, то соответствующих полей не будет в созданной модельной форме, даже если они были указаны в аргументе fields.

Аргумент widgets является словарём с именами полей модели привязанных к виджетам.

Аргумент formfield_callback является обработчиком, который будет применять к полям модели и возвращать поля формы.

Аргумент localized_fields является списком имён полей, которые должны быть локализованы.

Аргумент labels является словарём имён полей модели привязанных к меткам.

Аргумент help_texts является словарём имён полей модели привязанных к тексту подсказок.

Аргумент error_messages является словарём имён полей модели привязанных к словарю с сообщениями об ошибках.

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

Изменено в Django 1.6.

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

Были добавлены аргументы localized_fields, labels, help_texts и error_messages.

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)

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

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

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

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

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

Были добавлены аргументы widgets, validate_max, localized_fields, labels, help_texts и error_messages.

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)

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

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

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

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

Были добавлены аргументы widgets, validate_max and localized_fields, labels, help_texts и error_messages.