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 = Foosecara efektif sama seperti menentukanqueryset = Foo.objects.all(), dimanaobjectsberdiri untuk default managerFoo.
-
queryset¶ Sebuah
QuerySetyang mewakili obyek-obyek. Jika disediakan, nilai dariquerysetmenggantikan nilai disediakan untukmodel.Peringatan
querysetadalah sebuah atribut kelas dengan nilai berubah-ubah sehingga perawatan harus diambil ketika menggunakan itu secara langsung. Sebelum menggunakan itu, antara memanggil metodeall()nya atau mengambil itu denganget_queryset()yang merawat dari kloning dibelakang layar.
-
slug_field¶ Nama dari bidang pada model yang mengandung keong. Secara awalan,
slug_fieldadalah'slug'.
-
slug_url_kwarg¶ Nama dari argumen kata kunci URLConf yang mengandung keong. Secara awalan,
slug_url_kwargadalah'slug'.
-
pk_url_kwarg¶ Nama dari argumen kata kunci URLConf yang mengandung primary key. Secara awalan,
pk_url_kwargadalah'pk'.
-
context_object_name¶ Menandakan nama dari variabel untuk digunakan di konteks.
-
query_pk_and_slug¶ Jika
True, menyebabkanget_object()melakukan pencariannya menggunakan kedua primay key dan keong. Awalan menjadiFalse.Atribut ini dapat membantu mengatasi serangan insecure direct object reference. Ketika aplikasi mengizinkan akses ke obyek-obyek pribadi dengan primay key berurutan, seorang penyerang dapat menebak brute-force semua URL; dengan demikian mendapatkan semua daftar dari semua obyek-obyek di aplikasi. Jika pengguna dengan akses ke obyek-obyek pribadi harus dicegah dari mendapatkan daftar ini, pengaturan
query_pk_and_slugmenjadiTrueakan membantu mencegah menebak URL setiap URL akan membutuhkan dua benar, argumen bukan-berurutan. Cukup menggunakan sebuah keong unik mungkin melayani tujuan yang sama, tetapi skema ini mengizinkan anda memiliki keong bukan-unik.
-
get_object(queryset=None)¶ Mengembalikan obyek tunggal yang tampilan ini akan diperlihatkan. Jika
querysetdisediakan, queryset itu akan digunakan sebagai sumber dari obyek-obyek; jika tidak,get_queryset()akan digunakan.get_object()mencari sebuah argumenpk_url_kwargdi 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 argumenslug_url_kwarg, dan melakukan pencarian keong menggunakanslug_field.Ketika
query_pk_and_slugadalahTrue,get_object()akan melakukan pencariannya menggunakan kedua primary key dan keong.
-
get_queryset()¶ Mengembalikan queryset yang akan digunakan mengambil obyek yang tampilan ini akan diperlihatkan. Secara awalan,
get_queryset()mengembalikan nilai dari atributquerysetjika itu disetel, jika tidak itu membangun sebuahQuerySetdengan memanggil metodeall()pada pengelola awalan atributmodel.
-
get_context_object_name(obj)¶ Mengembalikan nama variabel konteks yang akan digunakan mewadahi daftar data yang tampilan ini dimanipulasi. Jika
context_object_nametidak disetel, nama konteks akan dibangun darimodel_namedari the model yang queryset disusun dari. Sebagai contoh, modelArticleakan mempunyai sebuah obyek konteks bernamaarticle.
-
get_context_data(**kwargs)¶ Mengembalikan data konteks untuk menampilkan obyek.
Penerapan dasar dari metode ini membutuhkan bahwa atribut
self.objectdisetel oleh tampilan (bahkan jikaNone). 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.objectjuga akan disimpan dibawah nama dikembalikan olehget_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 atributmodelpadaUser, awalan nama obyek konteks dariuserakan menimpa variabeluserdari pengolah konteksdjango.contrib.auth.context_processors.auth(). Gunakanget_context_object_name()untuk menghindari tabrakan.
-
get_slug_field()¶ Mengembalikan nama dari bidang keong untuk digunakan mencari oleh keong. Secara awalan ini cukup mengembalikan nilai dari
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.objectakan biasanya, tetapi itu tidak diwajibkan, sebuah instance dari model Django. Itu mungkinNonejika tampilan di pengolahan dari membangun instance baru.Perpanjang
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_fielditu sendiri atau nilai daritemplate_name_fieldpada instance obyek saat ini adalahNone, 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()¶ Mengembalikan daftar dari calon nama-nama cetakan. Mengembalikan daftar berikut:
- nilai dari
template_namepada tampilan (jika disediakan) - isi dari bidang
template_name_fieldpada instance obyek yang tampilan sedang beroperasi diatas (jika tersedia) <app_label>/<model_name><template_name_suffix>.html
- nilai dari
-