models.txt 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. ====================
  2. Model Form Functions
  3. ====================
  4. Model Form API reference. For introductory material about model forms, see the
  5. :doc:`/topics/forms/modelforms` topic guide.
  6. .. module:: django.forms.models
  7. :synopsis: Django's functions for building model forms and formsets.
  8. .. 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)
  9. Returns a :class:`~django.forms.ModelForm` class for the given ``model``.
  10. You can optionally pass a ``form`` argument to use as a starting point for
  11. constructing the ``ModelForm``.
  12. ``fields`` is an optional list of field names. If provided, only the named
  13. fields will be included in the returned fields.
  14. ``exclude`` is an optional list of field names. If provided, the named
  15. fields will be excluded from the returned fields, even if they are listed
  16. in the ``fields`` argument.
  17. ``formfield_callback`` is a callable that takes a model field and returns
  18. a form field.
  19. ``widgets`` is a dictionary of model field names mapped to a widget.
  20. ``localized_fields`` is a list of names of fields which should be localized.
  21. ``labels`` is a dictionary of model field names mapped to a label.
  22. ``help_texts`` is a dictionary of model field names mapped to a help text.
  23. ``error_messages`` is a dictionary of model field names mapped to a
  24. dictionary of error messages.
  25. ``field_classes`` is a dictionary of model field names mapped to a form
  26. field class.
  27. See :ref:`modelforms-factory` for example usage.
  28. You must provide the list of fields explicitly, either via keyword arguments
  29. ``fields`` or ``exclude``, or the corresponding attributes on the form's
  30. inner ``Meta`` class. See :ref:`modelforms-selecting-fields` for more
  31. information. Omitting any definition of the fields to use will result in
  32. an :exc:`~django.core.exceptions.ImproperlyConfigured` exception.
  33. .. versionchanged:: 1.8
  34. Previously, omitting the list of fields was allowed and resulted in
  35. a form with all fields of the model.
  36. .. versionadded:: 1.9
  37. The ``field_classes`` keyword argument was added.
  38. .. 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)
  39. Returns a ``FormSet`` class for the given ``model`` class.
  40. Arguments ``model``, ``form``, ``fields``, ``exclude``,
  41. ``formfield_callback``, ``widgets``, ``localized_fields``, ``labels``,
  42. ``help_texts``, ``error_messages``, and ``field_classes`` are all passed
  43. through to :func:`~django.forms.models.modelform_factory`.
  44. Arguments ``formset``, ``extra``, ``max_num``, ``can_order``,
  45. ``can_delete`` and ``validate_max`` are passed through to
  46. :func:`~django.forms.formsets.formset_factory`. See :ref:`formsets` for
  47. details.
  48. See :ref:`model-formsets` for example usage.
  49. .. versionadded:: 1.9
  50. The ``field_classes`` keyword argument was added.
  51. .. 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)
  52. Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
  53. defaults of ``formset=``:class:`~django.forms.models.BaseInlineFormSet`,
  54. ``can_delete=True``, and ``extra=3``.
  55. If your model has more than one :class:`~django.db.models.ForeignKey` to
  56. the ``parent_model``, you must specify a ``fk_name``.
  57. See :ref:`inline-formsets` for example usage.
  58. .. versionadded:: 1.9
  59. The ``field_classes`` keyword argument was added.