# Dokumentasi Django 4.2.9.dev20231204082947

# Fungsi Formulir Model

Acuan API Formulir Model. Untuk bahan pengenalan, lihat panduan topik Membuat formulir dari model.

## `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)

  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)

  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.

  Changed in Django 4.1:

  The `edit_only` argument was added.

## `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)

  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.

  Changed in Django 4.1:

  The `edit_only` argument was added.