1. ====================
    
  2. Model Form Functions
    
  3. ====================
    
  4. 
    
  5. Model Form API reference. For introductory material about model forms, see the
    
  6. :doc:`/topics/forms/modelforms` topic guide.
    
  7. 
    
  8. .. module:: django.forms.models
    
  9.    :synopsis: Django's functions for building model forms and formsets.
    
  10. 
    
  11. ``modelform_factory``
    
  12. =====================
    
  13. 
    
  14. .. function:: 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)
    
  15. 
    
  16.     Returns a :class:`~django.forms.ModelForm` class for the given ``model``.
    
  17.     You can optionally pass a ``form`` argument to use as a starting point for
    
  18.     constructing the ``ModelForm``.
    
  19. 
    
  20.     ``fields`` is an optional list of field names. If provided, only the named
    
  21.     fields will be included in the returned fields.
    
  22. 
    
  23.     ``exclude`` is an optional list of field names. If provided, the named
    
  24.     fields will be excluded from the returned fields, even if they are listed
    
  25.     in the ``fields`` argument.
    
  26. 
    
  27.     ``formfield_callback`` is a callable that takes a model field and returns
    
  28.     a form field.
    
  29. 
    
  30.     ``widgets`` is a dictionary of model field names mapped to a widget.
    
  31. 
    
  32.     ``localized_fields`` is a list of names of fields which should be localized.
    
  33. 
    
  34.     ``labels`` is a dictionary of model field names mapped to a label.
    
  35. 
    
  36.     ``help_texts`` is a dictionary of model field names mapped to a help text.
    
  37. 
    
  38.     ``error_messages`` is a dictionary of model field names mapped to a
    
  39.     dictionary of error messages.
    
  40. 
    
  41.     ``field_classes`` is a dictionary of model field names mapped to a form
    
  42.     field class.
    
  43. 
    
  44.     See :ref:`modelforms-factory` for example usage.
    
  45. 
    
  46.     You must provide the list of fields explicitly, either via keyword arguments
    
  47.     ``fields`` or ``exclude``, or the corresponding attributes on the form's
    
  48.     inner ``Meta`` class. See :ref:`modelforms-selecting-fields` for more
    
  49.     information. Omitting any definition of the fields to use will result in
    
  50.     an :exc:`~django.core.exceptions.ImproperlyConfigured` exception.
    
  51. 
    
  52. ``modelformset_factory``
    
  53. ========================
    
  54. 
    
  55. .. function:: 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)
    
  56. 
    
  57.     Returns a ``FormSet`` class for the given ``model`` class.
    
  58. 
    
  59.     Arguments ``model``, ``form``, ``fields``, ``exclude``,
    
  60.     ``formfield_callback``, ``widgets``, ``localized_fields``, ``labels``,
    
  61.     ``help_texts``, ``error_messages``, and ``field_classes`` are all passed
    
  62.     through to :func:`~django.forms.models.modelform_factory`.
    
  63. 
    
  64.     Arguments ``formset``, ``extra``, ``can_delete``, ``can_order``,
    
  65.     ``max_num``, ``validate_max``, ``min_num``, ``validate_min``,
    
  66.     ``absolute_max``, ``can_delete_extra``, and ``renderer`` are passed
    
  67.     through to :func:`~django.forms.formsets.formset_factory`. See
    
  68.     :doc:`formsets </topics/forms/formsets>` for details.
    
  69. 
    
  70.     The ``edit_only`` argument allows :ref:`preventing new objects creation
    
  71.     <model-formsets-edit-only>`.
    
  72. 
    
  73.     See :ref:`model-formsets` for example usage.
    
  74. 
    
  75.     .. versionchanged:: 4.0
    
  76. 
    
  77.         The ``renderer`` argument was added.
    
  78. 
    
  79.     .. versionchanged:: 4.1
    
  80. 
    
  81.         The ``edit_only`` argument was added.
    
  82. 
    
  83. ``inlineformset_factory``
    
  84. =========================
    
  85. 
    
  86. .. function:: 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)
    
  87. 
    
  88.     Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
    
  89.     defaults of ``formset=``:class:`~django.forms.models.BaseInlineFormSet`,
    
  90.     ``can_delete=True``, and ``extra=3``.
    
  91. 
    
  92.     If your model has more than one :class:`~django.db.models.ForeignKey` to
    
  93.     the ``parent_model``, you must specify a ``fk_name``.
    
  94. 
    
  95.     See :ref:`inline-formsets` for example usage.
    
  96. 
    
  97.     .. versionchanged:: 4.0
    
  98. 
    
  99.         The ``renderer`` argument was added.
    
  100. 
    
  101.     .. versionchanged:: 4.1
    
  102. 
    
  103.         The ``edit_only`` argument was added.