# Dokumentasi Django 5.2.8

# Mixin obyek tunggal

## `SingleObjectMixin`

class django.views.generic.detail.SingleObjectMixin

  Menyediakan sebuah mekanisme untuk mencari sebuah obyek terkait dengan permintaan HTTP saat ini.

  Cara dan Atribut

  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 `Foo`.

  queryset

    Sebuah `QuerySet` yang mewakili obyek-obyek. Jika disediakan, nilai dari `queryset` menggantikan nilai disediakan untuk `model`.

    Peringatan

    `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()` nya atau mengambil itu dengan `get_queryset()` yang merawat dari kloning dibelakang layar.

  slug_field

    Nama dari bidang pada model yang mengandung tanda siput. Secara awalan, `slug_field` adalah `'slug'`.

  slug_url_kwarg

    Nama dari argumen kata kunci URLConf yang mengandung tanda siput. Secara awalan, `slug_url_kwarg` adalah `'slug'`.

  pk_url_kwarg

    Nama dari argumen kata kunci URLConf yang mengandung primary key. Secara awalan, `pk_url_kwarg` adalah `'pk'`.

  context_object_name

    Menandakan nama dari variabel untuk digunakan di konteks.

  query_pk_and_slug

    If `True`, causes `get_object()` to perform its lookup using both the primary key and the slug. Defaults to `False`.

    This attribute can help mitigate insecure direct object reference attacks. When applications allow access to individual objects by a sequential primary key, an attacker could brute-force guess all URLs; thereby obtaining a list of all objects in the application. If users with access to individual objects should be prevented from obtaining this list, setting `query_pk_and_slug` to `True` will help prevent the guessing of URLs as each URL will require two correct, non-sequential arguments. Using a unique slug may serve the same purpose, but this scheme allows you to have non-unique slugs.

  get_object(queryset=None)

    Mengembalikan obyek tunggal yang tampilan ini akan diperlihatkan. Jika `queryset` disediakan, queryset itu akan digunakan sebagai sumber dari obyek-obyek; jika tidak, `get_queryset()` akan digunakan. `get_object()` mencari sebuah argumen `pk_url_kwarg` di argumen pada tampilan; jika argumen ini ditemukan, metode ini melakukan sebuah pencarian berdasarkan primary-key menggunakan nilai itu. Jika argumen ini tidak ditemukan, itu mencari sebuah argumen `slug_url_kwarg`, dan melakukan pencarian tanda siput menggunakan `slug_field`.

    Ketika `query_pk_and_slug` adalah `True`, `get_object()` akan melakukan pencariannya menggunakan kedua primary key dan tanda siput.

  get_queryset()

    Mengembalikan queryset yang akan digunakan mengambil obyek yang tampilan ini akan diperlihatkan. Secara awalan, `get_queryset()` mengembalikan nilai dari atribut `queryset` jika itu disetel, jika tidak itu membangun sebuah `QuerySet` dengan memanggil metode `all()` pada pengelola awalan atribut `model`.

  get_context_object_name(obj)

    Mengembalikan nama variabel konteks yang akan digunakan mewadahi daftar data yang tampilan ini dimanipulasi. Jika `context_object_name` tidak disetel, nama konteks akan dibangun dari `model_name` dari the model yang queryset disusun dari. Sebagai contoh, model `Article` akan mempunyai sebuah obyek konteks bernama `article`.

  get_context_data(**kwargs)

    Mengembalikan data konteks untuk menampilkan obyek.

    Penerapan dasar dari metode ini membutuhkan bahwa atribut `self.object` disetel oleh tampilan (bahkan jika `None`). Pastikan melakukan ini jika anda sedang menggunakan mixin ini tanpa satu dari tampilan siap-pakai yang melakukan begitu.

    Itu mengembalikan sebuah kamus dengan isi ini:

    - `object`: Obyek dimana tampilan ini diperlihatkan (`self.object`).

    - `context_object_name`: `self.object` juga akan disimpan dibawah nama dikembalikan oleh `get_context_object_name()`, yang awalan ke versi huruf kecil dari nama model.

    Variabel konteks menimpa nilai-nilai dari pengolah konteks cetakan

    Tiap variabel dari `get_context_data()` mengambil hak lebih tinggi terhadap variabel konteks dari context processors. Sebagai contoh, jika tampilan anda menyetel atribut `model` pada `User`, awalan nama obyek konteks dari `user` akan menimpa variabel `user` dari pengolah konteks `django.contrib.auth.context_processors.auth()`. Gunakan `get_context_object_name()` untuk menghindari tabrakan.

  get_slug_field()

    Returns the name of a slug field to be used to look up by slug. By default this returns the value of `slug_field`.

## `SingleObjectTemplateResponseMixin`

class django.views.generic.detail.SingleObjectTemplateResponseMixin

  Sebuah kelas mixin yang melakukan pembangunan tanggapan berdasarkan-cetakan untuk tampilan yang beroperasi diatas instance obyek tunggal. Membutuhkan bahwa tampila itu dicampur dengan menyediakan `self.object`, instance obyek yang tampilan beroperasi. `self.object` akan biasanya, tetapi itu tidak diwajibkan, sebuah instance dari model Django. Itu mungkin `None` jika tampilan di pengolahan dari membangun instance baru.

  Perpanjang

  - `TemplateResponseMixin`

  Cara dan Atribut

  template_name_field

    Bidang pada instance obyek saat ini yang dapat digunakan untuk menentukan nama dari calon cetakan. Jika antara `template_name_field` itu sendiri atau nilai dari `template_name_field` pada instance obyek saat ini adalah `None`, obyek tidak akan digunakan untuk calon nama cetakan.

  template_name_suffix

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

  get_template_names()

    Returns a list of candidate template names. Return a list containing `template_name`, if set on the value. Otherwise, return a list containing:

    - isi dari bidang `template_name_field` pada instance obyek yang tampilan sedang beroperasi diatas (jika tersedia)

    - `<app_label>/<model_name><template_name_suffix>.html`