---
title: "Menyunting mixin"
version: 2.2
locale: id
source: https://docs.djangoproject.com/id/2.2/ref/class-based-views/mixins-editing/
canonical: https://djangodocs.dev/id/2.2/ref/class-based-views/mixins-editing/
---
# Menyunting mixin

Mixin berikut digunakan untuk membangun tampilan penyuntingan Django:

- [`django.views.generic.edit.FormMixin`](#django.views.generic.edit.FormMixin)
- [`django.views.generic.edit.ModelFormMixin`](#django.views.generic.edit.ModelFormMixin)
- [`django.views.generic.edit.ProcessFormView`](#django.views.generic.edit.ProcessFormView)
- [`django.views.generic.edit.DeletionMixin`](#django.views.generic.edit.DeletionMixin)

> **Note**
>
> Contoh-contoh dari bagaimana ini dipadukan kedalam tampilan menyunting dapat ditemukan pada dokumentasi di [Tampilan penyuntingan umum](/id/2.2/ref/class-based-views/generic-editing/).

## `FormMixin`

#### `class django.views.generic.edit.FormMixin`

Sebuah kelas mixin yang menyediakan fasilitas-fasilitas untuk membuat dan memperlihatkan formulir

**Mixins**

- [`django.views.generic.base.ContextMixin`](/id/2.2/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin)

**Cara dan Atribut**

#### `initial`

Sebuah kamus mengandung data inisial untuk formulir.

#### `form_class`

Kelas formulir untuk instasiasi

#### `success_url`

URL untuk pengalihan ketika formulir berhasil diolah.

#### `prefix`

[`prefix`](/id/2.2/ref/forms/api/#django.forms.Form.prefix) untuk membangkitkan formulir.

#### `get_initial()`

Mengambil data inisial untuk formulir. Secara awalan, mengembalikan salinan dari [`initial`](#django.views.generic.edit.FormMixin.initial).

#### `get_form_class()`

Mengambil kelas formulir untuk instasiasi. Secara awalan [`form_class`](#django.views.generic.edit.FormMixin.form_class).

#### `get_form(form_class=None)`

Instansiasi sebuah instance dari `form_class` menggunakan [`get_form_kwargs()`](#django.views.generic.edit.FormMixin.get_form_kwargs). Jika form\_class\`\`tidak disediakan [`get_form_class()`](#django.views.generic.edit.FormMixin.get_form_class) akan digunakan.

#### `get_form_kwargs()`

Membangun argumen kata kunci diwajibkan untuk instasiasi formulir.

Argumen `initial` disetel menjadi [`get_initial()`](#django.views.generic.edit.FormMixin.get_initial). Jika permintaan adalah `POST` atau `PUT`, data permintaan (`request.POST` dan `request.FILES`) akan juga disediakan.

#### `get_prefix()`

Menentukan [`prefix`](/id/2.2/ref/forms/api/#django.forms.Form.prefix) untuk formulir dibangkitkan. Mengembalikan [`prefix`](#django.views.generic.edit.FormMixin.prefix) secara awalan.

#### `get_success_url()`

Menentukan URL untuk pengalihkan ketika formulir adalah berhasil disahkan. Mengembalikan [`success_url`](#django.views.generic.edit.FormMixin.success_url) secara awalan.

#### `form_valid(form)`

Dialihkan ke [`get_success_url()`](#django.views.generic.edit.FormMixin.get_success_url).

#### `form_invalid(form)`

Membangun sebuah tanggapan, menyediakan formulir tidak sah sebagai konteks.

#### `get_context_data(**kwargs)`

Memanggil [`get_form()`](#django.views.generic.edit.FormMixin.get_form) dan menambahkan hasil ke data konteks dengan nama 'form'.

## `ModelFormMixin`

#### `class django.views.generic.edit.ModelFormMixin`

Sebuah mixin formulir yang bekerja pada `ModelForms`, daripada formulir berdiri sendiri.

Sejak ini adalah subkelas dari [`SingleObjectMixin`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin), instance dari mixin ini mempunyai akses ke atribut [`model`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.model) dan [`queryset`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.queryset), menggambarkan jenis dari obyek yang `ModelForm` dimanipulasi.

Jika anda menentukan kedua atribut [`fields`](#django.views.generic.edit.ModelFormMixin.fields) dan [`form_class`](#django.views.generic.edit.FormMixin.form_class), sebuah pengecualian [`ImproperlyConfigured`](/id/2.2/ref/exceptions/#django.core.exceptions.ImproperlyConfigured) akan dimunculkan.

**Mixins**

- [`django.views.generic.edit.FormMixin`](#django.views.generic.edit.FormMixin)
- [`django.views.generic.detail.SingleObjectMixin`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin)

**Cara dan Atribut**

#### `model`

Sebuah kelas model. Dapat secara jelas disediakan, jika tidak akan ditentukan dengan menguji `self.object` atau [`queryset`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.queryset).

#### `fields`

Sebuah daftar nama-nama dari bidang-bidang. Ini ditafsirkan cara yang sama seperti atribut `Meta.fields` dari [`ModelForm`](/id/2.2/topics/forms/modelforms/#django.forms.ModelForm).

Ini adalah atribut wajib jika anda sedang membangkitkan kelas formulir secara otomatis (misalnya menggunakan `model`). Menghilangkan atribut ini akan menghasilkan dalam sebuah pengecualian [`ImproperlyConfigured`](/id/2.2/ref/exceptions/#django.core.exceptions.ImproperlyConfigured).

#### `success_url`

URL untuk pengalihan ketika formulir berhasil diolah.

`success_url` mungkin mengandung pembentukan string kamus, yang akan disisipkan terhadap atribut bidang obyek. Sebagai contoh, anda dapat menggunakan `success_url="/polls/{slug}/"` untuk mengalihkan ke sebuah URL disusun dari bidang `slug` pada sebuah model.

#### `get_form_class()`

Mengambil dari kelas formulir untuk menginstasiasi. Jika [`form_class`](#django.views.generic.edit.FormMixin.form_class) disediakan, kelas itu akan digunakan. Jika tidak, sebuah `ModelForm` akan diinstasiasikan menggunakan model terhubung dengan [`queryset`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.queryset), atau dengan [`model`](/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.model), tergantung pada atribut mana yang disediakan.

#### `get_form_kwargs()`

Tambah contoh saat ini (`self.object`) ke [`get_form_kwargs()`](#django.views.generic.edit.FormMixin.get_form_kwargs) standar.

#### `get_success_url()`

Menentukan URL untuk pengalihkan ketika formulir adalah berhasil disahkan. Mengembalikan [`success_url`](#django.views.generic.edit.ModelFormMixin.success_url) jika itu disediakan; jika tidak berusaha menggunakan `get_absolute_url()` dari obyek.

#### `form_valid(form)`

Simpan formulir contoh , setel onyek saat ini untuk tampilan, dan alihkan ke [`get_success_url()`](#django.views.generic.edit.FormMixin.get_success_url).

#### `form_invalid(form)`

Membangun sebuah tanggapan, menyediakan formulir tidak sah sebagai konteks.

## `ProcessFormView`

#### `class django.views.generic.edit.ProcessFormView`

Sebuah mixin yang menyediakan alir kerja HTTP GET dan POST dasar.

> **Note**
>
> Ini adalah bernama 'ProcessFormView' dan mewarisi langsung dari [`django.views.generic.base.View`](/id/2.2/ref/class-based-views/base/#django.views.generic.base.View), tetapi memotong jika digunakan secara berdiri sendiri, jadi itu lebih dari sebuah mixin.

**Perpanjang**

- [`django.views.generic.base.View`](/id/2.2/ref/class-based-views/base/#django.views.generic.base.View)

**Cara dan Atribut**

#### `get(request, *args, **kwargs)`

Membangun sebuah tanggapan menggunakan konteks dibuat dengan [`get_context_data()`](#django.views.generic.edit.FormMixin.get_context_data).

#### `post(request, *args, **kwargs)`

Pembangunan sebuah formulir, periksa formulir untuk keabsahan, dan menangani itu sesuai dengan itu.

#### `put(*args, **kwargs)`

Tindakan\`\`PUT\`\` juga menangani dan hanya melewatkan semua parameter melalui [`post()`](#django.views.generic.edit.ProcessFormView.post).

## `DeletionMixin`

#### `class django.views.generic.edit.DeletionMixin`

Mengadakan menangani dari tindakan http `DELETE`.

**Cara dan Atribut**

#### `success_url`

URL untuk pengalihan ketika obyek ditunjuk telah berhasil dihapus.

`success_url` mungkin mengandung pembentukan string kamus, yang akan disisipkan terhadap atribut bidang obyek. Sebagai contoh, anda dapat menggunakan `success_url="/parent/{parent_id}/"` untuk mengalihkan ke sebuah URL disusun dari bidang `parent_id` pada sebuah model.

#### `delete(request, *args, **kwargs)`

Mengambil obyek sasaran dan memanggil metode `delete()`, kemudian mengalihkan ke URL berhasil.

#### `get_success_url()`

Menentukan url untuk pengalihkan ketikaketika obyek yang dicalonkan berhasil dihapus. Mengembalikan [`success_url`](#django.views.generic.edit.DeletionMixin.success_url) secara awalan.
