Model forms

ModelForm API reference. For introductory material about using a ModelForm, see the Membuat formulir dari model topic guide.

Model form Meta API

class ModelFormOptions[sumber]

The _meta API is used to build forms that reflect a Django model. It is accessible through the _meta attribute of each model form, and is an django.forms.models.ModelFormOptions instance.

The structure of the generated form can be customized by defining metadata options as attributes of an inner Meta class. For example:

from django.forms import ModelForm
from myapp.models import Book


class BookForm(ModelForm):
    class Meta:
        model = Book
        fields = ["title", "author"]
        help_texts = {
            "title": "The title of the book",
            "author": "The author of the book",
        }
        # ... other attributes

Required attributes are model, and either fields or exclude. All other Meta attributes are optional.

Optional attributes, other than localized_fields and formfield_callback, expect a dictionary that maps a model field name to a value. Any field that is not defined in the dictionary falls back to the field's default value.

Invalid field names

Invalid or excluded field names in an optional dictionary attribute have no effect, since fields that are not included are not accessed.

Invalid Meta class attributes

You may define any attribute on a Meta class. Typos or incorrect attribute names do not raise an error.

error_messages

ModelFormOptions.error_messages

A dictionary that maps a model field name to a dictionary of error message keys (null, blank, invalid, unique, etc.) mapped to custom error messages.

When a field is not specified, Django will fall back on the error messages defined in that model field's django.db.models.Field.error_messages and then finally on the default error messages for that field type.

exclude

ModelFormOptions.exclude

A tuple or list of model field names to be excluded from the form.

Either fields or exclude must be set. If neither are set, an ImproperlyConfigured exception will be raised. If exclude is set and fields is unset, all model fields, except for those specified in exclude, are included in the form.

field_classes

ModelFormOptions.field_classes

A dictionary that maps a model field name to a Field class, which overrides the form_class used in the model field's Field.formfield() method.

When a field is not specified, Django will fall back on the model field's default field class.

fields

ModelFormOptions.fields

A tuple or list of model field names to be included in the form. The value '__all__' can be used to specify that all fields should be included.

If any field is specified in exclude, this will not be included in the form despite being specified in fields.

Either fields or exclude must be set. If neither are set, an ImproperlyConfigured exception will be raised.

formfield_callback

ModelFormOptions.formfield_callback

A function or callable that takes a model field and returns a django.forms.Field object.

help_texts

ModelFormOptions.help_texts

A dictionary that maps a model field name to a help text string.

When a field is not specified, Django will fall back on that model field's help_text.

labels

ModelFormOptions.labels

A dictionary that maps a model field names to a label string.

When a field is not specified, Django will fall back on that model field's verbose_name and then the field's attribute name.

localized_fields

ModelFormOptions.localized_fields

A tuple or list of model field names to be localized. The value '__all__' can be used to specify that all fields should be localized.

By default, form fields are not localized, see enabling localization of fields for more details.

model

ModelFormOptions.model

Required. The django.db.models.Model to be used for the ModelForm.

widgets

ModelFormOptions.widgets

A dictionary that maps a model field name to a django.forms.Widget.

When a field is not specified, Django will fall back on the default widget for that particular type of django.db.models.Field.

Model form factory functions

modelform_factory

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)[sumber]

Mengembalikan sebuah kelas ModelForm untuk``model`` yang diberikan. Anda dapat secara pilihan melewatkan sebuah argumen form untuk digunakan sebagai sebuah titik permulaan untuk membangun ModelForm.

fields adalah daftar pilihan dari nama-nama bidang. Jika disediakan, hanya bidang-bidang bernama akan disertakan dalam bidang kembalian.

exclude``adalah daftar pilihan dari nama-nama bidang. Jika disediakan, bidang-bidang bernama akan tidak disertakan dari bidang-bidang kembalian, bahkan jika mereka terdaftar dalam argumen ``fields.

formfield_callback adalah sebuah callable yang mengambil sebuah bidang model dan mengembalikan sebuah bidang formulir.

widgets adalah sebuah dictionary dari nama-nama bidang model dipetakan pada sebuah widget.

localized_fields adalah daftar dari nama dari bidang yang harus dilokalkan.

labels adalah sebuah dictionary dari nama-nama bidang dipetakan pada sebuah label.

help_texts adalah sebuah dictionary dari nama-nama bidang dipetakan pada sebuah bantuan teks.

``error_messages``adalah sebuah dictionary dari nama-nama bidang dipetakan pada sebuah dictionary dari pesan kesalahan.

field_classes adalah sebuah dictionary dari nama-nama bidang dipetakan pada sebuah kelas bidang formulir.

Lihat Fungsi pabrik ModelForm untuk contoh penggunaan.

Anda harus menyediakan daftar dari bidang-bidang secara tegas, salah satu melalui argumen kata kunci fields atau exclude, atau atribut berhubungan pada kelas Meta bagian dalam formulir. Lihat Memilih bidang untuk digunakan untuk informasi lebih. Menghilangkan pengertian apapun dari bidang untuk digunakan akan menghasilkan dalam sebuah pengecualian ImproperlyConfigured.

modelformset_factory

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)[sumber]

Mengembalikan kelas FormSet untuk kelas model yang diberikan.

Argumen-argumen model, form, fields, exclude, formfield_callback, widgets, localized_fields, labels, help_texts, error_messages, dan field_classes semua dilewatkan melalui modelform_factory().

Arguments formset, extra, can_delete, can_order, max_num, validate_max, min_num, validate_min, absolute_max, can_delete_extra, and renderer are passed through to formset_factory(). See formsets for details.

The edit_only argument allows preventing new objects creation.

Lihat Model formsets untuk contoh penggunaan.

inlineformset_factory

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)[sumber]

Mengembalikan sebuah InlineFormSet menggunakan modelformset_factory() dengan awalan dari formset=`BaseInlineFormSet, can_delete=True, dan extra=3.

Jika model anda mempunyai lebih dari satu ForeignKey pada parent_model, anda harus menentukan fk_name.

Lihat Formset berderet untuk contoh penggunaan.