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

## `MultipleObjectMixin`

#### `class django.views.generic.list.MultipleObjectMixin`

Sebuah mixin yang dapat digunakan memperlihatkan daftar dari obyek.

Jika `paginate_by` ditentukan, Django akan memberikan nomor hasil dikembalikan oleh ini. Anda dapat menentukan nomor halaman di URL di satu atau dua cara:

- Gunakan parameter `page` di URLconf. Sebagai contoh, ini adalah apa URLconf anda mungkin terlihat seperti:

  ```
  path('objects/page<int:page>/', PaginatedView.as_view()),
  ```
- Lewatkan nomor halaman melalui parameter string-permintaan `page`. Sebagai contoh, sebuah URL akan terlihat seperti ini:

  ```
  /objects/?page=3
  ```

Nilai-nilai ini dan daftar adalah berdasarkan-1, bukan berdasarkan-0, jadi halaman pertama akan diwakili sebagai halaman `1`.

Untuk lebih pada pemberian nomor, baca [pagination documentation](/id/2.2/topics/pagination/).

Seperti kasus khusus, anda juga diizinkan menggunakan `last` sebagai sebuah nilai untuk `page`:

```
/objects/?page=last
```

Ini mengizinkan anda mengakses halaman akhir dari hasil tanpa pertama harus menentukan seberapa banyak halaman ada.

Catat bahwa `page` *harus* antara nomor halaman sah atau nilai `last`; nilai lain apapun untuk `page` akan menghasilkan di kesalahan 404.

**Perpanjang**

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

**Cara dan Atribut**

#### `allow_empty`

Sebuah boolean menentukan apakah memperlihatkan halaman jika tidak ada obyek tersedia. Jika ini adalah `False` dan tidak ada obyek tersedia, tampilan akan memunculkan  sebuah 404 daripada memperlihatkan sebuah halaman kosong. Secara awalan, ini adalah `True`.

#### `model`

Model yang tampilan ini akan menampilkan data. Menentukan `model = Foo` secara efektif sama seperti menentukan `queryset = Foo.objects.all()`, dimana `objects` berdiri untuk [default manager](/id/2.2/topics/db/managers/#default-managers) `Foo`.

#### `queryset`

Sebuah `QuerySet` yang mewakili obyek-obyek. Jika disediakan, nilai dari `queryset` menggantikan nilai disediakan untuk [`model`](#django.views.generic.list.MultipleObjectMixin.model).

> **Warning**
>
> `queryset` adalah sebuah atribut kelas dengan nilai *berubah-ubah* sehingga perawatan harus diambil ketika menggunakan itu secara langsung. Sebelum menggunakan itu, antara memanggil metode [`all()`](/id/2.2/ref/models/querysets/#django.db.models.query.QuerySet.all) nya atau mengambil itu dengan [`get_queryset()`](#django.views.generic.list.MultipleObjectMixin.get_queryset) yang merawat dari kloning dibelakang layar.

#### `ordering`

Sebuah string atau daftar dari string menentukan urutan untuk memberlakukan ke `queryset`. Nilai-nilai sah adalah sama seperti itu untuk [`order_by()`](/id/2.2/ref/models/querysets/#django.db.models.query.QuerySet.order_by).

#### `paginate_by`

Sebuah integer menentukan seberapa banyak obyek-obyek harus diperlihatkan per halaman. Jika ini diberikan, tampilan akan memberikan nomor obyek-obyek dengan `paginate_by` obyek-obyek per halaman. Tampilan akan mengharapkan antara sebuah parameter string permintaan `page` (melalui `request.GET`) atau sebuah variabel `page` ditentukan di URLconf.

#### `paginate_orphans`

Sebuah integer menentukan nomor dari obyek-obyek "overflow" halaman terakhir dapat diisi. Ini memperpanjang [`paginate_by`](#django.views.generic.list.MultipleObjectMixin.paginate_by) batasan pada halaman terakhir sampai pada `paginate_orphans`, untuk menjaga halaman terakhir dari memiliki sangat kecil nomor dari obyek-obyek.

#### `page_kwarg`

Sebuah string menentukan nama digunakan untuk parameter halaman. Tampilan akan mengharapkan parameter ini untuk tersedia antara sebagai sebuah parameter string permintaan (melalui `request.GET`) atau sebagai sebuah variabel kwarg ditentukan di URLconf. Awalan ke `page`.

#### `paginator_class`

Kelas penomoran digunakan untuk menomorkan halaman. Secara awalan, [`django.core.paginator.Paginator`](/id/2.2/topics/pagination/#django.core.paginator.Paginator) digunakan. Jika penyesuaian kelas penomoran tidak mempunyai antarmuka pembangun sama seperti [`django.core.paginator.Paginator`](/id/2.2/topics/pagination/#django.core.paginator.Paginator), anda akan juga butuh menyediakan sebuah penerapan untuk [`get_paginator()`](#django.views.generic.list.MultipleObjectMixin.get_paginator).

#### `context_object_name`

Menandakan nama dari variabel untuk digunakan di konteks.

#### `get_queryset()`

Dapatkan daftar dari barang-barang untuk tampilan ini. Ini harus berupa sebuah perulangan dan mungkin sebuah queryset (dimana perilaku queryset-tertentu akan diadakan).

#### `get_ordering()`

Mengembalikan sebuah string (atau perulangan dari string) yang menentukan urutan yang akan diberlakukan ke `queryset`.

Mengembalikan [`ordering`](#django.views.generic.list.MultipleObjectMixin.ordering) secara awalan.

#### `paginate_queryset(queryset, page_size)`

Mengembalikan 4-tuple mengandung (`paginator`, `page`, `object_list`, `is_paginated`).

DIbangun dengan menomori `queryset` kedalam halaman dari ukuran `page_size`. Jika permintaan mengandung sebuah argumen `page`, antara sebagau URL tertangkap atau sebagai argumen GET, `object_list` akan berhubungan ke obyek-obyek dari halaman itu.

#### `get_paginate_by(queryset)`

Mengembalikan sejumlah barang-barang untuk menomorkan, atau `None` untuk tidak penomoran. Secara awalan ini cukup mengembalikan nilai dari [`paginate_by`](#django.views.generic.list.MultipleObjectMixin.paginate_by).

#### `get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)`

Mengembalikan sebuah instance dari penomor digunakan untuk tampilan ini. Secara awalan, instasiasi sebuah instance dari [`paginator_class`](#django.views.generic.list.MultipleObjectMixin.paginator_class).

#### `get_paginate_orphans()`

Sebuah integer menentukan sejumlah obyek-obyek "overflow" halaman terakhir dapat diisi. Secara awalan ini cukup mengembalikan nilai dari [`paginate_orphans`](#django.views.generic.list.MultipleObjectMixin.paginate_orphans).

#### `get_allow_empty()`

Mengembalikan sebuah boolean menentukan apakah memperlihatkan halaman jika tidak ada obyek tersedia. Jika metode ini mengembalikan `False` dan tidak ada obyek tersedia, tampilan akan memunculkan  sebuah 404 daripada memperlihatkan sebuah halaman kosong. Secara awalan, ini adalah `True`.

#### `get_context_object_name(object_list)`

Mengembalikan nama variabel konteks yang akan digunakan mewadahi daftar data yang tampilan ini dimanipulasi. Jika `object_list` adalah sebuah queryset dari obyek-obyek Django dan [`context_object_name`](#django.views.generic.list.MultipleObjectMixin.context_object_name) tidak disetel, nama konteks akan menjadi `model_name` dari the model yang queryset disusun dari, dengan postfix `'_list'` ditambahkan. Sebagai contoh, model `Article` akan mempunyai sebuah obyek konteks bernama `article_list`.

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

Mengembalikan data konteks untuk memperlihatkan daftar dari obyek.

**Konteks**

- `object_list`: Daftar dari obyek-obyek yang tampilan ini diperlihatkan. Jika `context_object_name` ditentukan, variabel itu akan juga disetel di konteks, dengan nilai sama seperti `object_list`.
- `is_paginated`: Sebuah boolean mewakili apakah hasil dinomorkan. Khususnya, ini disetel menjadi `False` jika tidak ada ukuran halaman telah ditentukan, atau jika obyek-obyek tersedia tidak menjangkau banyak halaman.
- `paginator`: Sebuah instance dari [`django.core.paginator.Paginator`](/id/2.2/topics/pagination/#django.core.paginator.Paginator). Jika halaman tidak dinomorkan, variabel konteks ini akan menjadi `None`.
- `page_obj`: Sebuah instance dari [`django.core.paginator.Page`](/id/2.2/topics/pagination/#django.core.paginator.Page). Jika halaman tidak dinomorkan, variabel konteks ini akan menjadi `None`.

## `MultipleObjectTemplateResponseMixin`

#### `class django.views.generic.list.MultipleObjectTemplateResponseMixin`

Sebuah kelas mixin yang melakukan membangun tanggapan berdasarkan-cetakan untuk tampilan yang beroperasi diatas daftar dari instance obyek. Diwajibkan bahwa tampilan itu campurkan dengan `self.object_list` tersedia, daftar dari instance obyek yang tampilan beroperasi. `self.object_list` mungkin, tetapi tidak diwajibkan menjadi, sebuah [`QuerySet`](/id/2.2/ref/models/querysets/#django.db.models.query.QuerySet).

**Perpanjang**

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

**Cara dan Atribut**

#### `template_name_suffix`

Akhiran ditambahkan ke calon nama cetakan dibangkitkan-otomatis. Awalan akhiran adalah `_list`.

#### `get_template_names()`

Mengembalikan daftar dari calon nama-nama cetakan. Mengembalikan daftar berikut:

- nilai dari `template_name` pada tampilan (jika disediakan)
- `<app_label>/<model_name><template_name_suffix>.html`
