Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/docs/ref/forms/models.txt
blob: 18ada3c7764e99f365e0faecce0bedd76354cc7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
====================
Model Form Functions
====================

Model Form API reference. For introductory material about model forms, see the
:doc:`/topics/forms/modelforms` topic guide.

.. module:: django.forms.models
   :synopsis: Django's functions for building model forms and formsets.

.. 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)

    Returns a :class:`~django.forms.ModelForm` class for the given ``model``.
    You can optionally pass a ``form`` argument to use as a starting point for
    constructing the ``ModelForm``.

    ``fields`` is an optional list of field names. If provided, only the named
    fields will be included in the returned fields.

    ``exclude`` is an optional list of field names. If provided, the named
    fields will be excluded from the returned fields, even if they are listed
    in the ``fields`` argument.

    ``formfield_callback`` is a callable that takes a model field and returns
    a form field.

    ``widgets`` is a dictionary of model field names mapped to a widget.

    ``localized_fields`` is a list of names of fields which should be localized.

    ``labels`` is a dictionary of model field names mapped to a label.

    ``help_texts`` is a dictionary of model field names mapped to a help text.

    ``error_messages`` is a dictionary of model field names mapped to a
    dictionary of error messages.

    ``field_classes`` is a dictionary of model field names mapped to a form
    field class.

    See :ref:`modelforms-factory` for example usage.

    You must provide the list of fields explicitly, either via keyword arguments
    ``fields`` or ``exclude``, or the corresponding attributes on the form's
    inner ``Meta`` class. See :ref:`modelforms-selecting-fields` for more
    information. Omitting any definition of the fields to use will result in
    an :exc:`~django.core.exceptions.ImproperlyConfigured` exception.

    .. versionadded:: 1.9

        The ``field_classes`` keyword argument was added.

.. 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)

    Returns a ``FormSet`` class for the given ``model`` class.

    Arguments ``model``, ``form``, ``fields``, ``exclude``,
    ``formfield_callback``, ``widgets``, ``localized_fields``, ``labels``,
    ``help_texts``, ``error_messages``, and ``field_classes`` are all passed
    through to :func:`~django.forms.models.modelform_factory`.

    Arguments ``formset``, ``extra``, ``max_num``, ``can_order``,
    ``can_delete`` and ``validate_max`` are passed through to
    :func:`~django.forms.formsets.formset_factory`. See :ref:`formsets` for
    details.

    See :ref:`model-formsets` for example usage.

    .. versionadded:: 1.9

        The ``field_classes`` keyword argument was added.

.. 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)

    Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
    defaults of ``formset=``:class:`~django.forms.models.BaseInlineFormSet`,
    ``can_delete=True``, and ``extra=3``.

    If your model has more than one :class:`~django.db.models.ForeignKey` to
    the ``parent_model``, you must specify a ``fk_name``.

    See :ref:`inline-formsets` for example usage.

    .. versionadded:: 1.9

        The ``field_classes`` keyword argument was added.