{"title":"Situs admin Django","version":"4.1","locale":"id","docname":"ref/contrib/admin/index","url":"/id/4.1/ref/contrib/admin/","canonical":"https://djangodocs.dev/id/4.1/ref/contrib/admin/","summary":"Satu dari bagian yang paling berkuasa dari Django adalah antarmuka admin otomatis. Itu membaca metadata dari model anda untuk menyediakan cepat, antarmuka…","html":"<span id=\"the-django-admin-site\"></span><h1>Situs admin Django<a class=\"heading-anchor\" href=\"#module-django.contrib.admin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Satu dari bagian yang paling berkuasa dari Django adalah antarmuka admin otomatis. Itu membaca metadata dari model anda untuk menyediakan cepat, antarmuka terpusat-model dimana pengguna dipercaya dapat mengelola isi pada situs anda. Dianjurkan admin menggunakan batasannya ke sebuah alat pengelola internal organisasi. Itu tidak dimaksudkan untuk membangun keseluruhan front end disekeliling.</p>\n<p>Admin mempunyai banyak kaitan untuk penyesuaian, tetapi hati-hati dari mencoba menggunakan kaitan tersebut secara khusus. Jika anda butuh menyediakan antarmuka pengolahan-terpusat yang memisahkan rincian penerapan dari tabel-tabel dan bidang-bidang basisdata, kemudian itu mungkin waktu utuk menulis tampilan anda sendiri.</p>\n<p>Di dokumen ini kami mengobrol bagaimana mengaktifkan pengguna, menggunakan, dan menyesuaikan antarmuka admin Django.</p>\n<section id=\"overview\">\n<h2>Ikhtisar<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Admin diadakan di cetakan proyek awalan digunakan oleh <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">startproject</span></code></a>.</p>\n<p>Jika anda tidak menggunakan cetakan proyek awalan, ini adalah syarat-syaratnya:</p>\n<ol class=\"arabic simple\">\n<li><p>Tambah <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> dan ketergantungannya - <a class=\"reference internal\" href=\"/id/4.1/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/#module-django.contrib.contenttypes\" title=\"django.contrib.contenttypes: Provides generic interface to installed models.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes</span></code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a>, dan <a class=\"reference internal\" href=\"/id/4.1/topics/http/sessions/#module-django.contrib.sessions\" title=\"django.contrib.sessions: Provides session management for Django projects.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions</span></code></a> - ke pengaturan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>.</p></li>\n<li><p>Configure a <a class=\"reference internal\" href=\"/id/4.1/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a>\nbackend in your <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> setting with\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.context_processors.request</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.auth</span></code>, and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.context_processors.messages</span></code> in\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">'context_processors'</span></code> option of <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-TEMPLATES-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a>.</p></li>\n<li><p>Jika anda telah menyesuaikan pengaturan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.middleware.AuthenticationMiddleware</span></code></a> dan <a class=\"reference internal\" href=\"/id/4.1/ref/middleware/#django.contrib.messages.middleware.MessageMiddleware\" title=\"django.contrib.messages.middleware.MessageMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.middleware.MessageMiddleware</span></code></a> harus disertakan.</p></li>\n<li><p><a class=\"reference internal\" href=\"#hooking-adminsite-to-urlconf\"><span class=\"std std-ref\">Hook the admin's URLs into your URLconf</span></a>.</p></li>\n</ol>\n<p>Setelah anda mengambil langkah-langkah ini, anda mungkin akan dapat menggunakan situs admin dengan mengunjungi URL anda kaitkan kedalam (<code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/</span></code>, secara awalan).</p>\n<p>If you need to create a user to login with, use the <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#django-admin-createsuperuser\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">createsuperuser</span></code></a>\ncommand. By default, logging in to the admin requires that the user has the\n<a class=\"reference internal\" href=\"/id/4.1/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_staff</span></code></a> attribute set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Akhirnya, tentukan mana model aplikasi anda harus disunting dalam antarmuka admin. Untuk setiap dari model tersebut, daftarkan mereka dengan admin seperti digambarkan dalam <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>.</p>\n<section id=\"other-topics\">\n<h3>Topik lainnya<a class=\"heading-anchor\" href=\"#other-topics\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<div class=\"toctree-wrapper compound\">\n<ul>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/actions/\">Tindakan admin</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/filters/\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> List Filters</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/admindocs/\">Pembangkit dokumentasi admin Django</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/javascript/\">Penyesuaian JavaScript di admin</a></li>\n</ul>\n</div>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Lihat juga</p>\n<p>Untuk informasi tentang melayani berkas-berkas tetap (gambar, JavaScript, dan CSS) terhubung dengan admin di produksi, lihat <a class=\"reference internal\" href=\"/id/4.1/howto/deployment/wsgi/modwsgi/#serving-files\"><span class=\"std std-ref\">Melayani berkas</span></a>.</p>\n<p>Mempunyai masalah? Coba <a class=\"reference internal\" href=\"/id/4.1/faq/admin/\"><span class=\"doc\">FAQ: Admin</span></a>.</p>\n</aside>\n</section>\n</section>\n<section id=\"modeladmin-objects\">\n<h2>Obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code><a class=\"heading-anchor\" href=\"#modeladmin-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ModelAdmin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> class is the representation of a model in the admin\ninterface. Usually, these are stored in a file named <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.py</span></code> in your\napplication. Let's take a look at an example of the <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">AuthorAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-do-you-need-a-modeladmin-object-at-all admonition\">\n<p class=\"admonition-title\">Apakah anda butuh sebuah obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> sama sekali?</p>\n<p>Di contoh terdahulu, kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> tidak menentukan nilai-nilai penyesuaian apapun (pun). Sebagai hasil, awalan antarmuka admin akan disediakan. Jika anda senang dengan awalan antarmuka admin, anda tidak butuh menentukan sebuah obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> sama sekali -- anda dapat mendafta kelas model tanpa menyediakan sebuah gambaran <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>. Contoh terdahulu dapat disederhanakan menjadi:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n</dd></dl>\n\n<section id=\"the-register-decorator\">\n<h3>Penghias <code class=\"docutils literal notranslate\"><span class=\"pre\">register</span></code><a class=\"heading-anchor\" href=\"#the-register-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.register\">\n<span class=\"sig-name descname\"><span class=\"pre\">register</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">models</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">site</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">django.contrib.admin.sites.site</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.register\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ada juga sebuah penghias untuk mendaftarkan kelas-kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> anda:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n\n<span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">)</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Itu diberikan satu atau lebih kelas-kelas model untuk didaftarkan dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>. Jika anda sedang menggunakan penyesuaian <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a>, lewatkan itu menggunakan argumen katakunci <code class=\"docutils literal notranslate\"><span class=\"pre\">site</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">Editor</span><span class=\"p\">,</span> <span class=\"n\">Reader</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myproject.admin_site</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">custom_admin_site</span>\n\n<span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">Reader</span><span class=\"p\">,</span> <span class=\"n\">Editor</span><span class=\"p\">,</span> <span class=\"n\">site</span><span class=\"o\">=</span><span class=\"n\">custom_admin_site</span><span class=\"p\">)</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Anda tidak dapat menggunakan decorator ini jika anda harus mengacu kelas admin anda dalam metode <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> nya, misalnya. <code class=\"docutils literal notranslate\"><span class=\"pre\">super(PersonAdmin,</span> <span class=\"pre\">self).__init__(*args,</span> <span class=\"pre\">**kwargs)</span></code>. Anda dapat menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">super().__init__(*args,</span> <span class=\"pre\">**kwargs)</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"discovery-of-admin-files\">\n<h3>Penemuan dari berkas admin<a class=\"heading-anchor\" href=\"#discovery-of-admin-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ketika anda menaruh <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> di pengaturan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> anda, Django secara otomatis mencari modul <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> di setiap aplikasi dan mengimpor itu.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.apps.AdminConfig\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">apps.</span></span><span class=\"sig-name descname\"><span class=\"pre\">AdminConfig</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.apps.AdminConfig\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah awalan kelas <a class=\"reference internal\" href=\"/id/4.1/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code></a> untuk admin. Itu memanggil <a class=\"reference internal\" href=\"#django.contrib.admin.autodiscover\" title=\"django.contrib.admin.autodiscover\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">autodiscover()</span></code></a> ketika Django mulai.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.apps.SimpleAdminConfig\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">apps.</span></span><span class=\"sig-name descname\"><span class=\"pre\">SimpleAdminConfig</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.apps.SimpleAdminConfig\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas ini bekerja seperti <a class=\"reference internal\" href=\"#django.contrib.admin.apps.AdminConfig\" title=\"django.contrib.admin.apps.AdminConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminConfig</span></code></a>, kecuali itu tidak memanggil <a class=\"reference internal\" href=\"#django.contrib.admin.autodiscover\" title=\"django.contrib.admin.autodiscover\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">autodiscover()</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.apps.SimpleAdminConfig.default_site\">\n<span class=\"sig-name descname\"><span class=\"pre\">default_site</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.apps.SimpleAdminConfig.default_site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur impor bertitik pada kelas situs admin awalan atau pada callable yang mengembalikan yang mengembalikan sebuah instance situs. Awalan pada <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin.sites.AdminSite'</span></code>. Lihat <a class=\"reference internal\" href=\"#overriding-default-admin-site\"><span class=\"std std-ref\">Menimpa situs admin awalan</span></a> untuk penggunaan.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.autodiscover\">\n<span class=\"sig-name descname\"><span class=\"pre\">autodiscover</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.autodiscover\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Fungsi ini berusaha mengimpor sebuah modul <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> di setiap aplikasi terpasang. Modul-modul itu diharapkan mendaftar model dengan admin.</p>\n<p>Secara khusus anda tidak butuh memanggil fungsi ini secara langsung sebagai <a class=\"reference internal\" href=\"#django.contrib.admin.apps.AdminConfig\" title=\"django.contrib.admin.apps.AdminConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminConfig</span></code></a> memanggilnya ketika Django mulai.</p>\n</dd></dl>\n\n<p>Jika anda sedang menggunakan sebuah penyesuaian <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>, itu adalah umum mengimpor semua dari subkelas <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> kedalam kode anda dan mendaftarkan mereka ke penyesuaian <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>. Dalam hal itu, untuk meniadakan penemuan-otomatis, anda harus menaruh <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin.apps.SimpleAdminConfig'</span></code> sebagai gantinya <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> di pengaturan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> anda.</p>\n</section>\n<section id=\"modeladmin-options\">\n<h3>Pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code><a class=\"heading-anchor\" href=\"#modeladmin-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> sangat fleksibel. Itu mempunyai beberapa pilihan untuk berurusan dengan menyesuaikan antarmuka. Semua pilihan ditentukan pada subkelas <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">date_hierarchy</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;pub_date&#39;</span>\n</code></pre></div>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah daftar tindakan untuk membuat tersedia pada halaman daftar perubahan. Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/actions/\"><span class=\"doc\">Tindakan admin</span></a> untuk rincian.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions_on_top\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions_on_top</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions_on_top\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions_on_bottom\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions_on_bottom</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions_on_bottom\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kendalikan dimana pada halaman batang tindakan muncul. Secara awalan daftar rubah admin memperlihatkan tindakan pada atas dari halaman (<code class=\"docutils literal notranslate\"><span class=\"pre\">actions_on_top</span> <span class=\"pre\">=</span> <span class=\"pre\">True;</span> <span class=\"pre\">actions_on_bottom</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions_selection_counter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions_selection_counter</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions_selection_counter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kendalikan apakah sebuah penghitung pemilihan ditampilkan dekat tindakan dropdown. Secara awalan, daftar tubadh admin akan memperlihatkan itu (<code class=\"docutils literal notranslate\"><span class=\"pre\">actions_selection_counter</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.date_hierarchy\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">date_hierarchy</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.date_hierarchy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy</span></code> pada nama dari <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code> di model anda, dan halaman daftar rubah akan menyertakan navigasi penelusuran berdasarkan-tanggal oleh bidang itu.</p>\n<p>Contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">date_hierarchy</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;pub_date&#39;</span>\n</code></pre></div>\n<p>Anda dapat juga menentukan sebuah bidang pada model terkait menggunakan pencarian <code class=\"docutils literal notranslate\"><span class=\"pre\">__</span></code>, sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">date_hierarchy</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;author__pub_date&#39;</span>\n</code></pre></div>\n<p>Ini akan secara cerdas mengumpulkan itu sendiri berdasarkan pada data tersedia, misalnya jika semua tanggal berada di satu bulan, itu akan menampilkan hanya penelesuran tingkat-hari.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy</span></code> menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#django.db.models.query.QuerySet.datetimes\" title=\"django.db.models.query.QuerySet.datetimes\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.datetimes()</span></code></a> secara internal. Harap mengacu ke dokumentasinya untuk beberapa peringatan ketika dukungan zona waktu diadakan (<a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code></a>).</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.empty_value_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">empty_value_display</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Atribut ini menimpa nilai pertunjukan awalan untuk bidang rekaman yang kosong (<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, string kosong, dll). Nilai awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">-</span></code> (sebuah tanda garis). Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">empty_value_display</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;-empty-&#39;</span>\n</code></pre></div>\n<p>Anda dapat juga menimpa <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code> untuk semua halaman admin dengan <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.empty_value_display\" title=\"django.contrib.admin.AdminSite.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.empty_value_display</span></code></a>, atau bidang-bidang tertentu seperti ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;title&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;view_birth_date&#39;</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">empty_value</span><span class=\"o\">=</span><span class=\"s1\">&#39;???&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">view_birth_date</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">birth_date</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.exclude\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">exclude</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.exclude\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Atribut ini, jika diberikan, harus berupa daftar dari nama-nama bidang untuk mengeluarkan dari formulir.</p>\n<p>Sebagai contoh, mari kita pertimbangkan model berikut:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Author</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>\n    <span class=\"n\">birth_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span><span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda ingin sebuah formulit untuk model <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> yang menyertakan hanya bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code>, anda akan menentukan <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> seperti ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;title&#39;</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;birth_date&#39;</span><span class=\"p\">,)</span>\n</code></pre></div>\n<p>Sejak model Author hanya mempunyai tiga bidang, <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">birth_date</span></code>, formulir dihasilkan dari pernyataan diatas akan mengandung bidang-bidang sama persis.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Gunakan pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> untuk membuat perubahan tata letak sederhana di formulir pada halaman &quot;add&quot; dan &quot;change&quot; seperti menunjukkan hanya subhimpunan dari bidang-bidang tersedia, merubah urutan mereka, atau mengelompokkan mereka kedalam baris. Sebagai contoh, anda dapat menentukan versi sederhana dari formulir admin untuk model <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/flatpages/#django.contrib.flatpages.models.FlatPage\" title=\"django.contrib.flatpages.models.FlatPage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.flatpages.models.FlatPage</span></code></a> seperi berikut:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FlatPageAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;url&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;title&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;content&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Di contoh diatas, hanya bidang-bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code> akan diperlihatkan, berurutan, di formulir. <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> dapat mengandung nilai-nilai ditentukan di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.readonly_fields</span></code></a> untuk diperlihatkan sebagai hanya-baca.</p>\n<p>Untuk kebutuhan tata letak lebih rumit, lihat pilihan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>.</p>\n<p>Pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> menerima jenis-jenis sama dari nilai sebagai <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a>, kecuali yang callable tidak diterima. Nama-nama dari model dan metode admin model akan hanya digunakan jika mereka terdaftar dalam <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>.</p>\n<p>Untuk memperlihatkan banyak bidang pada baris yang sama, bungkus bidang-bidang tersebut di tuple mereka sendiri. Di contoh ini, bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code> akan diperlihatkan di baris sama dan bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code> akan diperlihatkan dibawah mereka pada baris nya sendiri:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FlatPageAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">((</span><span class=\"s1\">&#39;url&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;title&#39;</span><span class=\"p\">),</span> <span class=\"s1\">&#39;content&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-note admonition\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> ini tidak harus membingungkan dengan kunci kamus <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> yaitu dalam pilihan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>, seperti digambarkan di bagian selanjutnya.</p>\n</aside>\n<p>Jika tidak ada pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> maupun <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a> hadir, Django akan mengawalkan ke menampilkan setiap bidang yang bukan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">AutoField</span></code> dan mempunyai <code class=\"docutils literal notranslate\"><span class=\"pre\">editable=True</span></code>, dalam fieldset tunggal, di urutan sama seperti bidang-bidang ditentukan di model</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.fieldsets\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fieldsets</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> utuk mengendalikan tata letak dari halaman &quot;add&quot; dan &quot;change&quot; admin.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> adalah daftar dari dua-tuple, yang setiap dua-tuple mewakili sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> pada halaman formulir admin. (Sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> adalah sebuah &quot;section&quot; dari formulir.)</p>\n<p>Dua-tuple dalam bentuk <code class=\"docutils literal notranslate\"><span class=\"pre\">(name,</span> <span class=\"pre\">field_options)</span></code>, dimana <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> adalah sebuah string mewakili juful dari fieldset dan <code class=\"docutils literal notranslate\"><span class=\"pre\">field_options</span></code> adalah sebuah kamus dari informasi tentang fieldset, termasuk daftar dari bidang-bidang untuk ditampilkan di itu.</p>\n<p>Sebuah contoh penuh, diambil dari model <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/flatpages/#django.contrib.flatpages.models.FlatPage\" title=\"django.contrib.flatpages.models.FlatPage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.flatpages.models.FlatPage</span></code></a></p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FlatPageAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fieldsets</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n        <span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">{</span>\n            <span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s1\">&#39;url&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;title&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;content&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;sites&#39;</span><span class=\"p\">)</span>\n        <span class=\"p\">}),</span>\n        <span class=\"p\">(</span><span class=\"s1\">&#39;Advanced options&#39;</span><span class=\"p\">,</span> <span class=\"p\">{</span>\n            <span class=\"s1\">&#39;classes&#39;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s1\">&#39;collapse&#39;</span><span class=\"p\">,),</span>\n            <span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s1\">&#39;registration_required&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;template_name&#39;</span><span class=\"p\">),</span>\n        <span class=\"p\">}),</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Hasil dalam halaman admin yang kelihatan seperti:</p>\n<img alt=\"/id/4.1/_images/fieldsets.png\" src=\"/id/4.1/_images/fieldsets.png\" />\n<p>Jika tidak ada pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> maupun <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> hadir, Django akan mengawalkan ke menampilkan setiap bidang yang bukan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">AutoField</span></code> dan mempunyai <code class=\"docutils literal notranslate\"><span class=\"pre\">editable=True</span></code>, dalam fieldset tunggal, di urutan sama seperti bidang-bidang ditentukan di model</p>\n<p>Kamus <code class=\"docutils literal notranslate\"><span class=\"pre\">field_options</span></code> dapat mempunyai kunci berikut:</p>\n<ul>\n<li><dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code></dt><dd><p>Sebuah tuple dari nama-nama bidang untuk ditampilkan di fieldset ini. Kunci ini diwajibkan.</p>\n<p>Contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n<span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;address&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;city&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;state&#39;</span><span class=\"p\">),</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Seperti pilihan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a>, untuk memperlihatkan banyak bidang pada baris sama, membungkus bidang tersebut di tuple mereka sendiri. Dalam contoh ini, bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">first_name</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">last_name</span></code> memperlihatkan pada baris sama:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n<span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">((</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">),</span> <span class=\"s1\">&#39;address&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;city&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;state&#39;</span><span class=\"p\">),</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> dapat mengandung nilai-nilai ditentukan di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a> untuk ditampilkan sebagai hanya-baca.</p>\n<p>Jika anda menambah nama dari callable ke <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code>, aturan sama berlaku seperti pilihan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a>: callable harus sidaftar di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>.</p>\n</dd>\n</dl>\n</li>\n<li><dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">classes</span></code></dt><dd><p>Sebuah daftar atau tuple mengandung kelas-kelas CSS tambahan untuk berlaku pada fieldset.</p>\n<p>Contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n<span class=\"s1\">&#39;classes&#39;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s1\">&#39;wide&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;extrapretty&#39;</span><span class=\"p\">),</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Dua kelas beguna ditentukan oleh awalan stylesheet situs admin adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">collapse</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">wide</span></code>. Fieldset dengan gaya <code class=\"docutils literal notranslate\"><span class=\"pre\">collapse</span></code> akan diinisialisasi runtuh di admin dan diganti dengan sebuah tautan &quot;klik untuk memperluas&quot; kecil. Fieldset dengan gaya <code class=\"docutils literal notranslate\"><span class=\"pre\">wide</span></code> akan diberikan ruang mendatar tambahan.</p>\n</dd>\n</dl>\n</li>\n<li><dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">description</span></code></dt><dd><p>Sebuah string dari teks tambahan pilihan untuk diperlihatkan pada atas dari setiap fieldset, dibawah kepala dari fieldset. String ini tidak dibangun untuk <a class=\"reference internal\" href=\"#django.contrib.admin.TabularInline\" title=\"django.contrib.admin.TabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code></a> disebabkan oleh tata letaknya.</p>\n<p>Catat bahwa nilai ini <em>bukan</em> pelolosan-HTML ketika itu ditampilkan dalam antarmuka admin. Ini membuat anda menyertakan HTML jika anda inginkan. Cara lain anda dapat menggunakan teks polos dan <a class=\"reference internal\" href=\"/id/4.1/ref/utils/#django.utils.html.escape\" title=\"django.utils.html.escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.html.escape()</span></code></a> untuk meloloskan karakter khusus HTML apapun.</p>\n</dd>\n</dl>\n</li>\n</ul>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.filter_horizontal\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">filter_horizontal</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.filter_horizontal\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan, sebuah <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> diperlihatkan di situs admin dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;</span></code>. Bagaimanapun, kotak pilihan-banyak dapat sulit digunakan ketika memilih banyak barang. Menambahkan sebuah <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> ke daftar ini malahan akan menggunakan antarmuka &quot;filter&quot; JavaScript tidak mengganggu yang mengizinkan pencarian dalam pilihan. Pilihan tidak terpilih atau terpilih muncul di dua kotak bersebelahan. Lihat <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_vertical\" title=\"django.contrib.admin.ModelAdmin.filter_vertical\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_vertical</span></code></a> untuk menggunakan antarmuka tegak lurus.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.filter_vertical\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">filter_vertical</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.filter_vertical\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sama seperti <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_horizontal\" title=\"django.contrib.admin.ModelAdmin.filter_horizontal\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_horizontal</span></code></a>, tetapi menggunakan tampilan tegak lurus dari antarmuka penyaring dengan kotak dari piliha tidak dipilih muncul diatas dari pilihan terpilih.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> secara dinamis dibuat untuk model anda. Itu digunakan untuk membuat formulir dihadirkan pada kedua halaman tambah/rubah. Anda dapat dengan mudah menyediakan <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> anda sendiri untuk menimpa awalan perilaku formulir apapun pada halaman tambah/rubah. Kalau tidak, anda dapat menyesuaikan awalan formulir daripada menentukan keseluruhan satu yang baru menggunakan metode <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_form\" title=\"django.contrib.admin.ModelAdmin.get_form\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_form()</span></code></a>.</p>\n<p>Untuk sebuah contoh lihat bagian <a class=\"reference internal\" href=\"#admin-custom-validation\"><span class=\"std std-ref\">Menambahkan pengesahan penyesuaian pada admin</span></a>.</p>\n<aside class=\"admonition-note admonition\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Jika anda menentukan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code> pada sebuah <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>, anda harus juga menentukan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> (atau atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.exclude</span></code>). Bagaimanapun, sejak admin mempunyai caranya sendiri dari menentukan bidang-bidang, atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> akan diabaikan.</p>\n<p>Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> hanya akan digunakan untuk admin, pemecahan termudah adalah mengilangkan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code>, sejak <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> akan menyediakan model benar untuk digunakan. Kalau tidak, anda dapat menyetel <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span> <span class=\"pre\">=</span> <span class=\"pre\">[]</span></code> di kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> untuk memuaskan pengesahan pada <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>.</p>\n</aside>\n<aside class=\"admonition-note admonition\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> kedua menentukan sebuah pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> kemudian <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> mengambil mendahului:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Person</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Person</span>\n        <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">]</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;age&#39;</span><span class=\"p\">]</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">PersonForm</span>\n</code></pre></div>\n<p>Dalam contoh diatas, bidang &quot;age&quot; akan tidak disertakan tetapi bidang &quot;name: akan disertakan di formulir dibangkitkan.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_overrides\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_overrides</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_overrides\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini menyediakan cara cepat-dan-kotor untuk menimpa beberapa pilihan <a class=\"reference internal\" href=\"/id/4.1/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a> untuk digunakan di admin. <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code> adalah sebuah kamus memetakan sebuah kelas bidang pada kamus dari argumen untuk melewatkan ke bidang pada waktu pembangunan.</p>\n<p>Sejak itu sedikit abstrak, mari kita lihat contoh nyata. Penggunaan paling umum dari <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code> ada;ah menambahkan sebuah widget penyesuaian untuk jenis tertentu dari bidang. Jadi, bayangkan kami telah menulis sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">RichTextEditorWidget</span></code> yang ingin untuk digunakan untuk bidang teks besar daripada awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;textarea&gt;</span></code>. Ini adalah bagaimana kami melakukannya:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"c1\"># Import our custom widget and our model from where they&#39;re defined</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MyModel</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.widgets</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">RichTextEditorWidget</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">formfield_overrides</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n        <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s1\">&#39;widget&#39;</span><span class=\"p\">:</span> <span class=\"n\">RichTextEditorWidget</span><span class=\"p\">},</span>\n    <span class=\"p\">}</span>\n</code></pre></div>\n<p>Catat bahwa kunci di kamus adalah kelas bidang sebenarnya, <em>bukan</em> sebuah string. Nilai adalah kamus lain; argumen ini akan dilewatkan ke metode <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> bidang formulir. Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/forms/api/\"><span class=\"doc\">API Formulir</span></a> untuk rincian.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Jika anda ingin menggunakan sebuah widget penyesuaian dengan sebuah bidang hubungan (yaitu <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a> atau <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>), pastikan anda belum menyertakan nama bidang tersebut dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code> tidak akan membiarkan anda merubah widget pada bidang hubungan yang  memiliki kumpulan <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code>, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code>. Itu karena <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code> berarti widget penyesuaian dari mereka sendiri.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.inlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">inlines</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.inlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Lihat <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a> objects below as well as <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_formsets_with_inlines\" title=\"django.contrib.admin.ModelAdmin.get_formsets_with_inlines\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_formsets_with_inlines()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_display</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Set <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> untuk mengendalikan bidang-bidang mana yang ditampilkan pada halaman daftar rubah dari admin.</p>\n<p>Contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda tidak menyetel <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>, situs admin akan menampilkan kolom tunggal yang menampilkan perwakilan <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> untuk setiap obyek.</p>\n<p>There are four types of values that can be used in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>. All\nbut the simplest may use the  <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a>\ndecorator, which is used to customize how the field is presented:</p>\n<ul>\n<li><p>Nama dari bidang model. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>Sebuah callable yang menerima satu argumen, instance model. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Name&#39;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">upper_case_name</span><span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"p\">(</span><span class=\"s2\">&quot;</span><span class=\"si\">%s</span><span class=\"s2\"> </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">upper</span><span class=\"p\">()</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">upper_case_name</span><span class=\"p\">,)</span>\n</code></pre></div>\n</li>\n<li><p>Sebuah string mewakili sebuah metode <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> yang menerima satu argumen. instance model. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;upper_case_name&#39;</span><span class=\"p\">,)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Name&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">upper_case_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">(</span><span class=\"s2\">&quot;</span><span class=\"si\">%s</span><span class=\"s2\"> </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">upper</span><span class=\"p\">()</span>\n</code></pre></div>\n</li>\n<li><p>Sebuah string mewakilkan sebuah atribut model atau metode (tanpa argumen dibutuhkan apapun). Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">birthday</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Birth decade&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">decade_born_in</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s1\">&#39;</span><span class=\"si\">%d</span><span class=\"s1\">’s&#39;</span> <span class=\"o\">%</span> <span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">birthday</span><span class=\"o\">.</span><span class=\"n\">year</span> <span class=\"o\">//</span> <span class=\"mi\">10</span> <span class=\"o\">*</span> <span class=\"mi\">10</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;decade_born_in&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n</ul>\n<p>Sedikit kasus khusus untuk dicatat tentang <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>:</p>\n<ul>\n<li><p>Jika bidang adalah sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>, Django akan menampilkan <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> dari obyek terkait.</p></li>\n<li><p>Bidang-bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> tidak didukung, karena akan memerlukan mengerjakan pernyataan SQL terpisah untuk setiap baris di tabel. Jika anda ingin melakukan ini meskipun begitu, berikan model anda sebuah metode penyesuaian, dan tambah nama metode ke <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>. (Lihat dibawah untuk lebih pada metode penyesuaian di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>.)</p></li>\n<li><p>If the field is a <code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code>, Django will display a pretty &quot;yes&quot;,\n&quot;no&quot;, or &quot;unknown&quot; icon instead of <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p></li>\n<li><p>Jika deretan karakter yang diberikan adalah metode dari model, <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> atau callable, Django akan meloloskan-HTML keluaran secara awalan. Untuk meloloskan masukan pengguna dan mengizinkan etiket tidak meloloskan anda sendiri, gunakan <a class=\"reference internal\" href=\"/id/4.1/ref/utils/#django.utils.html.format_html\" title=\"django.utils.html.format_html\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">format_html()</span></code></a>.</p>\n<p>Ini adalah sebuah contoh penuh model:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.html</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_html</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">color_code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">colored_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">format_html</span><span class=\"p\">(</span>\n            <span class=\"s1\">&#39;&lt;span style=&quot;color: #</span><span class=\"si\">{}</span><span class=\"s1\">;&quot;&gt;</span><span class=\"si\">{}</span><span class=\"s1\"> </span><span class=\"si\">{}</span><span class=\"s1\">&lt;/span&gt;&#39;</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">color_code</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;colored_name&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>As some examples have already demonstrated, when using a callable, a\nmodel method, or a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> method, you can customize the column's\ntitle by wrapping the callable with the\n<a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> decorator and passing the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">description</span></code> argument.</p></li>\n<li><p>Jika nilai dari sebuah bidang adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, sebuah string kosong, atau sebuah perulangan tanpa unsur-unsur, Django akan menampilkan -` (tanda garis). Anda dapat menimpa ini dengan <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.empty_value_display\" title=\"django.contrib.admin.AdminSite.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.empty_value_display</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">empty_value_display</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;(None)&#39;</span>\n</code></pre></div>\n<p>Anda juga dapat menggunakan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\" title=\"django.contrib.admin.ModelAdmin.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.empty_value_display</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">empty_value_display</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;unknown&#39;</span>\n</code></pre></div>\n<p>Atau pada tingkat bidang:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;birth_date_view&#39;</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">empty_value</span><span class=\"o\">=</span><span class=\"s1\">&#39;unknown&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">birth_date_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n         <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">birth_date</span>\n</code></pre></div>\n</li>\n<li><p>If the string given is a method of the model, <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> or a\ncallable that returns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, Django will\ndisplay a pretty &quot;yes&quot;, &quot;no&quot;, or &quot;unknown&quot; icon if you wrap the method\nwith the <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> decorator passing the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">boolean</span></code> argument with the value set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">birthday</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">boolean</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">born_in_fifties</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"mi\">1950</span> <span class=\"o\">&lt;=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">birthday</span><span class=\"o\">.</span><span class=\"n\">year</span> <span class=\"o\">&lt;</span> <span class=\"mi\">1960</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;born_in_fifties&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> adalah hanya sah dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> seperti metode model lain apapun, jadi itu sangat OK untuk melakukan ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;__str__&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;some_other_field&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>Biasanya, unsur-unsur dari <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> yang bukan bidang basisdata sebenarnya tidak dapat digunakan dalam mengurutkan (karena Django melakukan semua pengurutan pada tingkat basisdata).</p>\n<p>However, if an element of <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> represents a certain database\nfield, you can indicate this fact by using the\n<a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> decorator on the method, passing\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> argument:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.html</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_html</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">color_code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">colored_first_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">format_html</span><span class=\"p\">(</span>\n            <span class=\"s1\">&#39;&lt;span style=&quot;color: #</span><span class=\"si\">{}</span><span class=\"s1\">;&quot;&gt;</span><span class=\"si\">{}</span><span class=\"s1\">&lt;/span&gt;&#39;</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">color_code</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;colored_first_name&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Diatas akan mengatakan Django untuk mengurutkan berdasarkan bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">first_name</span></code> ketika mencoba mengurutkan berdasarkan <code class=\"docutils literal notranslate\"><span class=\"pre\">colored_first_name</span></code> di admin.</p>\n<p>To indicate descending order with the <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> argument you can use a\nhyphen prefix on the field name. Using the above example, this would look\nlike:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s1\">&#39;-first_name&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> argument supports query lookups to sort by values on\nrelated models. This example includes an &quot;author first name&quot; column in\nthe list display and allows sorting it by first name:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">)</span>\n    <span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BlogAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;title&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;author&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;author_first_name&#39;</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s1\">&#39;author__first_name&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_first_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">first_name</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"/id/4.1/ref/models/expressions/\"><span class=\"doc\">Query expressions</span></a> may be used with the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> argument:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Value</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Concat</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"n\">Concat</span><span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"n\">Value</span><span class=\"p\">(</span><span class=\"s1\">&#39; &#39;</span><span class=\"p\">),</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">))</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">full_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span> <span class=\"o\">+</span> <span class=\"s1\">&#39; &#39;</span> <span class=\"o\">+</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span>\n</code></pre></div>\n</li>\n<li><p>Elements of <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> can also be properties:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@property</span>\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span>\n        <span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">,</span>\n        <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Full name of the person&#39;</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">full_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span> <span class=\"o\">+</span> <span class=\"s1\">&#39; &#39;</span> <span class=\"o\">+</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;full_name&#39;</span><span class=\"p\">,)</span>\n</code></pre></div>\n<p>Note that <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;property</span></code> must be above <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;display</span></code>. If you're using the\nold way -- setting the display-related attributes directly rather than\nusing the <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> decorator --  be aware\nthat the <code class=\"docutils literal notranslate\"><span class=\"pre\">property()</span></code> function and <strong>not</strong> the <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;property</span></code> decorator\nmust be used:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_property</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span> <span class=\"o\">+</span> <span class=\"s1\">&#39; &#39;</span> <span class=\"o\">+</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span>\n<span class=\"n\">my_property</span><span class=\"o\">.</span><span class=\"n\">short_description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Full name of the person&quot;</span>\n<span class=\"n\">my_property</span><span class=\"o\">.</span><span class=\"n\">admin_order_field</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;last_name&#39;</span>\n\n<span class=\"n\">full_name</span> <span class=\"o\">=</span> <span class=\"nb\">property</span><span class=\"p\">(</span><span class=\"n\">my_property</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>Nama-nama bidang di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> akan juga muncul sebagai kelas-kelas CSS di keluaran HTML, di formulir dari <code class=\"docutils literal notranslate\"><span class=\"pre\">column-&lt;field_name&gt;</span></code> pada setiap unsur <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;th&gt;</span></code>. Ini dapat digunakan menyetel lebar kolom di sebuah berkas CSS sebagai contoh.</p></li>\n<li><p>Django akan mencoba mentafsirkan setiap unsur dari <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> di urutan ini:</p>\n<ul class=\"simple\">\n<li><p>Bidang dari model.</p></li>\n<li><p>Callable</p></li>\n<li><p>Sebuah string mewakili sebuah atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>.</p></li>\n<li><p>Sebuah string mewakili sebuah atribut model.</p></li>\n</ul>\n<p>Sebagai contoh jika anda mempunyai &quot;first name&quot; sebagai model bidang dan sebagai atribut  <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>, bidang model akan digunakan.</p>\n</li>\n</ul>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_display_links\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_display_links</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_display_links\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Gunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> untuk mengendalikan jika dan bidang-bidang mana di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a> harus di tautkan ke halaman &quot;change&quot; untuk sebuah obyek.</p>\n<p>Secara awalan, halaman daftar rubah akan mengkaitkan kolom pertama -- bidang pertama ditentukan di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> -- ke halaman perubahan untuk setiap barang. Tetapi <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> membiarkan anda merubah ini:</p>\n<ul>\n<li><p>Sete itu menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> untuk tidak mendapatkan tautan sama sekali.</p></li>\n<li><p>Set itu menjadi daftar atau tuple dari bidang (di bentuk sama seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>) yang kolomnya anda ingin rubah menjadi tautan.</p>\n<p>Anda dapat menentukan satu atau banyak bidang. Selama bidang-bidang muncul di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>, Django tidak peduli seberapa banyak (seberapa sedikit) bidang-bidang ditautkan. Persyaratan satu-satunya adalah bahwa jika anda ingin menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> dengan cara ini, anda harus menentukan <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>.</p>\n</li>\n</ul>\n<p>Di contoh ini, bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">first_name</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">last_name</span></code> akan dikaitkan pada halaman daftar rubah:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;birthday&#39;</span><span class=\"p\">)</span>\n    <span class=\"n\">list_display_links</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;first_name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;last_name&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Di contoh ini, jaring halaman daftar rubah tidak akan mempunyai tautan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuditEntryAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;timestamp&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;message&#39;</span><span class=\"p\">)</span>\n    <span class=\"n\">list_display_links</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\" id=\"admin-list-editable\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_editable\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_editable</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_editable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> ke sebuah daftar nama-nama bidang pada model yang akan mengizinkan menyunting pada halaman daftar rubah. yaitu, bidang-bidang terdaftar di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> akan diperlihatkan sebagai formulir widget pada halaman daftar rubah, mengizinkan pengguna menyunting dan menyimpan banyak baris sekaligus.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> berinteraksi dengan sepasang dari pilihan lain di cara tertentu; anda harus mencatat peraturan-peraturan berikut:</p>\n<ul class=\"simple\">\n<li><p>Bidang apapun di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> harus juga berada di <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>. Anda tidak dapat menyunting sebuah bidang yang tidak diperlihatkan!</p></li>\n<li><p>Bidang sama tidak dapat didaftarkan di kedua <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> -- sebuah bidang tidak dapat keduanya sebuah formulir dan sebuah tautan.</p></li>\n</ul>\n<p>Anda akan mendapatkan sebuah kesalahan pengesahan jika antara peraturan-peraturan ini rusak.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_filter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_filter</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_filter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Set <code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter</span></code> to activate filters in the right sidebar of the change\nlist page of the admin.</p>\n<p>At it's simplest <code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter</span></code> takes a list or tuple of field names to\nactivate filtering upon, but several more advanced options as available.\nSee <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/filters/#modeladmin-list-filters\"><span class=\"std std-ref\">ModelAdmin List Filters</span></a> for the details.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_max_show_all\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_max_show_all</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_max_show_all\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">list_max_show_all</span></code> untuk mengendalikan seberapa banyak barang dapat muncul pada halaman daftar rubah admin &quot;Show all&quot;. Admin akan memperlihatkan sebuah tautan &quot;Show all&quot; pada daftar rubah hanya jika jumlah hasil perhitungan kurang dari atau sama pada pengaturan ini. Secara awalan, ini disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">200</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_per_page\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_per_page</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_per_page\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">list_per_page</span></code> untuk mengendalikan seberapa banyak barang akan muncul pada setiap penomoran halaman daftar rubah admin. Secara awalan, ini disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">100</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_select_related\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_select_related</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_select_related\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">list_select_related</span></code> untuk memberitahu Django menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#django.db.models.query.QuerySet.select_related\" title=\"django.db.models.query.QuerySet.select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related()</span></code></a> dalam mengambil daftar dari obyek-obyek pada halaman daftar rubah admin. Ini dapat menghemat anda sekelompok dari permintaan basisdata.</p>\n<p>Nilai harus antara sebuah boolean, sebuah daftar atau sebuah tuple. Awalan adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n<p>Ketika nilai adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related()</span></code> akan selalu dipanggil. Ketika nilai disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, Django akan mencari <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> dan memanggil <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related()</span></code> jika <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> apapun hadir.</p>\n<p>Jika anda butuh lebih kendali berjaring-halus, gunakan sebuah tuple (atau daftar) sebagai nilai untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">list_select_related</span></code>. Tuple kosong akan mencegah Django dari memanggil <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related</span></code> sama sekali. Tuple lain apapun akan dilewatkan secara langsung ke <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related</span></code> sebagai parameter. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_select_related</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;author&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;category&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>akan memanggil <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related('author',</span> <span class=\"pre\">'category')</span></code>.</p>\n<p>Jika anda butuh menentukan nilai dinamis berdasarkan pada permintaan, anda dapat menerapkan cara <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_select_related\" title=\"django.contrib.admin.ModelAdmin.get_list_select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_list_select_related()</span></code></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> mengabaikan atribut ini ketika <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#django.db.models.query.QuerySet.select_related\" title=\"django.db.models.query.QuerySet.select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related()</span></code></a> telah dipanggil pada <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> daftar rubah.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.ordering\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">ordering</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.ordering\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> untuk menentukan bagaimana daftar dari obyek-obyek harus diurutkan di tampilan admin Django. Ini harus berupa sebuah daftar atau tuple di bentuk sama seperti parameter <a class=\"reference internal\" href=\"/id/4.1/ref/models/options/#django.db.models.Options.ordering\" title=\"django.db.models.Options.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a> model.</p>\n<p>Jika ini tidak disediakan, admin Django akan menggunakan pengurutan awalan model.</p>\n<p>Jika anda butuh menentukan urutan dinamis (sebagai contoh bergantung pada pengguna atau bahasa) anda dapat menerapkan sebuah metode <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_ordering\" title=\"django.contrib.admin.ModelAdmin.get_ordering\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_ordering()</span></code></a>.</p>\n<aside class=\"admonition-performance-considerations-with-ordering-and-sorting admonition\">\n<p class=\"admonition-title\">Pertimbangan penampilan dengan pengurutan dan pensortiran</p>\n<p>To ensure a deterministic ordering of results, the changelist adds\n<code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> to the ordering if it can't find a single or unique together set\nof fields that provide total ordering.</p>\n<p>Sebagai contoh, jika pengurutan awalan adalah dengan bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> bukan-unik, kemudian ubah daftar diurutkan berdasarkan <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>. Ini bisa berkinerja buruk jika anda mempunyai banyak baris dan tidak mempunyai sebuah indeks pada <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.paginator\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">paginator</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.paginator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas penomoran digunakan untuk menomorkan halaman. Secara awalan, <a class=\"reference internal\" href=\"/id/4.1/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a> digunakan. Jika penyesuaian kelas penomoran tidak mempunyai antarmuka pembangun sama seperti <a class=\"reference internal\" href=\"/id/4.1/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a>, anda akan juga butuh menyediakan sebuah penerapan untuk <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_paginator\" title=\"django.contrib.admin.ModelAdmin.get_paginator\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_paginator()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.prepopulated_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">prepopulated_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.prepopulated_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> pada nama-nama bidang pemetaan kamus ke bidang-bidang itu harus mengisi dimuka dari:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">prepopulated_fields</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;slug&quot;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,)}</span>\n</code></pre></div>\n<p>When set, the given fields will use a bit of JavaScript to populate from\nthe fields assigned. The main use for this functionality is to\nautomatically generate the value for <code class=\"docutils literal notranslate\"><span class=\"pre\">SlugField</span></code> fields from one or more\nother fields. The generated value is produced by concatenating the values\nof the source fields, and then by transforming that result into a valid\nslug (e.g. substituting dashes for spaces and lowercasing ASCII letters).</p>\n<p>Bidang-bidang diisi tidak dirubah oleh JavaScript setelah sebuah nilai telah disimpan. Itu biasanya tidak diinginkan bahwa tanda siput berubah (yang akan menyebabkan sebuah URL obyek berubah jika tanda siput digunakan dalam itu).</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> tidak menerima bidang-bidang  <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.preserve_filters\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">preserve_filters</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.preserve_filters\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>By default, applied filters are preserved on the list view after creating,\nediting, or deleting an object. You can have filters cleared by setting\nthis attribute to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.radio_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">radio_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.radio_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan, admin Django menggunakan antarmuka kotak-pilih (&lt;select&gt;) untuk bidang-bidang adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> atau mempunyai <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> disetel. Jika sebuah bidang hadir di <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code>, Django akan menggunakan antarmuka tombl-radio sebagai gantinya. Menganggap <code class=\"docutils literal notranslate\"><span class=\"pre\">group</span></code> adalah sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> pada model <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">radio_fields</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;group&quot;</span><span class=\"p\">:</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">VERTICAL</span><span class=\"p\">}</span>\n</code></pre></div>\n<p>Anda mempunyai pilihan dari menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">HORIZONTAL</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">VERTICAL</span></code> dari modul <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code>.</p>\n<p>Jangan menyertakan sebuah bidang dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> meskipun dia adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> atau mempunyai kumpulan <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.autocomplete_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">autocomplete_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.autocomplete_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code> adalah sebuah daftar dari <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> dan/atau bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> anda ingin rubah menjadi masukan pelengkap otomatis <a class=\"reference external\" href=\"https://select2.org/\">Select2</a> .</p>\n<p>Secara awalan, admin menggunakan antarmuka pilih-kotak (<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>) untuk bidang-bidang tersebut. Terkadang anda tidak ingin terjadi tambahan dari memilih semua instance terkait untuk ditampilkan dalam dropdown.</p>\n<p>Masukan Select2 terlihat mirip pada masukan awalan tetapi datang dengan fitur pencarian yang memuat pilihan secara asinkron. Ini lebih cepat dan lebih ramah-pengguna jika model terkait mempunyai banyak instance.</p>\n<p>Anda harus menentukan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.search_fields\" title=\"django.contrib.admin.ModelAdmin.search_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">search_fields</span></code></a> di obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> terkait karena pencarian lengkap otomatis menggunakan itu.</p>\n<p>Untuk menghindari penyingkapan data tidak berhak, pengguna harus memiliki perizinan <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">change</span></code> pada obyek terkait untuk menggunakan pelengkapan otomatis.</p>\n<p>Pengurutan dan penomoran dari hasil dikendalikan oleh metode terkait  <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_ordering\" title=\"django.contrib.admin.ModelAdmin.get_ordering\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_ordering()</span></code></a> dan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_paginator\" title=\"django.contrib.admin.ModelAdmin.get_paginator\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_paginator()</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>.</p>\n<p>Dalam contoh berikut, <code class=\"docutils literal notranslate\"><span class=\"pre\">ChoiceAdmin</span></code> mempunyai sebuah bidang pelengkapan otomatis untuk  <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> pada <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code>. Hasilnya disaring oleh bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">question_text</span></code> diurutkan oleh bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">date_created</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">QuestionAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;date_created&#39;</span><span class=\"p\">]</span>\n    <span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;question_text&#39;</span><span class=\"p\">]</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChoiceAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">autocomplete_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;question&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition-performance-considerations-for-large-datasets admonition\">\n<p class=\"admonition-title\">Pertimbangan penampilan untuk kumpulan data besar</p>\n<p>Pengurutan menggunakan  <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ordering\" title=\"django.contrib.admin.ModelAdmin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.ordering</span></code></a> mungkin menyebabkan masalah penampilan seperti pemilihan pada queryset besar akan lambat.</p>\n<p>Juga jika anda mencari bidang yang tidak diindeks oleh basisdata, anda mungkin mengalami penampilan buruk pada table yang sangat besar.</p>\n<p>Untuk kasus-kasus tersebut, adalah ide bagus untuk menulis penerapan  <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_search_results\" title=\"django.contrib.admin.ModelAdmin.get_search_results\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_search_results()</span></code></a> anda sendiri menggunakan pencarian indeks teks-penuh.</p>\n<p>Anda mungkin ingin merubah <code class=\"docutils literal notranslate\"><span class=\"pre\">Paginator</span></code> pada tabel-tabel sangat besar sebagai penomoran awaaln selalu melakukan permintaan <code class=\"docutils literal notranslate\"><span class=\"pre\">count()</span></code>. Sebagai contoh, anda dapat menimpa penerapan dari milik <code class=\"docutils literal notranslate\"><span class=\"pre\">Paginator.count</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.raw_id_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">raw_id_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.raw_id_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan, admin Django menggunakan antarmuka kotak-pilih (&lt;select&gt;) untuk bidang-bidang adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>. Terkadang anda tidak ingin mendatangkan atas dari memiliki untuk memilih semua instance terkait untuk memperlihatkan di drop-down.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> adalah sebuah daftar dari bidang anda ingin rubah menjadi widget <code class=\"docutils literal notranslate\"><span class=\"pre\">input</span></code> untuk antara sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">raw_id_fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s2\">&quot;newspaper&quot;</span><span class=\"p\">,)</span>\n</code></pre></div>\n<p>Widget <code class=\"docutils literal notranslate\"><span class=\"pre\">Input</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> harus mengandung sebuah primary key jika bidang adalah sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> atau sebuah dipisahkan koma daftar dari nilai-nilai jika bidng adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>. Widget <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> menunjukkan tombol kaca pembesar dekat pada bidang yang mengizinkan pengguna mencari dan memilih sebuah nilai:</p>\n<img alt=\"/id/4.1/_images/raw_id_fields.png\" src=\"/id/4.1/_images/raw_id_fields.png\" />\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.readonly_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">readonly_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan admin menunjukkan semua bidang sebagai dapat disunting. Bidang-bidang apapun di pilihan ini (yang harus berupa sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code>) akan menampilkan data dengan-adanya dan bukan-dapat disunting; mereka juga dikeluarkan dari <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> digunakan untuk membuat dan menyunting. catat bahwa ketika menentukan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fields</span></code></a> atau <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></a> bidang-bidang hanya-baca harus hadir untuk ditunjukkan (mereka diabaikan sebaliknya).</p>\n<p>Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code> digunakan tanpa menentukan urutan jelas melalui <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fields</span></code></a> atau <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></a> mereka akan ditambahkan setelah semua bidang dapat disunting.</p>\n<p>A read-only field can not only display data from a model's field, it can\nalso display the output of a model's method or a method of the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> class itself. This is very similar to the way\n<a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_display</span></code></a> behaves. This provides a way to use the\nadmin interface to provide feedback on the status of the objects being\nedited, for example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.html</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_html_join</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.safestring</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">mark_safe</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">readonly_fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;address_report&#39;</span><span class=\"p\">,)</span>\n\n    <span class=\"c1\"># description functions like a model field&#39;s verbose_name</span>\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Address&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">address_report</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">instance</span><span class=\"p\">):</span>\n        <span class=\"c1\"># assuming get_full_address() returns a list of strings</span>\n        <span class=\"c1\"># for each line of the address and you want to separate each</span>\n        <span class=\"c1\"># line by a linebreak</span>\n        <span class=\"k\">return</span> <span class=\"n\">format_html_join</span><span class=\"p\">(</span>\n            <span class=\"n\">mark_safe</span><span class=\"p\">(</span><span class=\"s1\">&#39;&lt;br&gt;&#39;</span><span class=\"p\">),</span>\n            <span class=\"s1\">&#39;</span><span class=\"si\">{}</span><span class=\"s1\">&#39;</span><span class=\"p\">,</span>\n            <span class=\"p\">((</span><span class=\"n\">line</span><span class=\"p\">,)</span> <span class=\"k\">for</span> <span class=\"n\">line</span> <span class=\"ow\">in</span> <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">get_full_address</span><span class=\"p\">()),</span>\n        <span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"n\">mark_safe</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;span class=&#39;errors&#39;&gt;I can&#39;t determine this address.&lt;/span&gt;&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_as\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_as</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_as\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> untuk mengadakan sebuah fitur &quot;save as new&quot; pada formulir rubah admin.</p>\n<p>Biasanya, obyek-obyek mempunyai tiga pilihan simpan: &quot;Save&quot;, &quot;Save and continue editing&quot;, dan &quot;Save and add another&quot;. Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, &quot;Save and add another&quot; akan diganti oleh sebuah tombol &quot;Save as new&quot; yang membuat sebuah obyek baru (dengan sebuah ID baru) daripada memperbaharui obyek yang ada.</p>\n<p>Secara awal, <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> disetel ke <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_as_continue\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_as_continue</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_as_continue\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ketika <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.save_as\" title=\"django.contrib.admin.ModelAdmin.save_as\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">save_as=True</span></code></a>, awalan pengalihan setelah menyimpan obyek baru adalah merubah tampilan untuk obyek itu. Jika anda menyetel <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as_continue=False</span></code>, pengalihan akan ke tampilan daftar rubah.</p>\n<p>Secara awal, <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as_continue</span></code> disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_on_top\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_on_top</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_on_top\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code> untuk menambah tombol simpan lintas atas dari formulir rubah admin anda.</p>\n<p>Biasanya, tombol simpan muncul hanya pada bawah dari formulir. Jika anda menyetel <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code>, tombol-tombol akan muncul kedua pada atas dan bawah.</p>\n<p>Secara awal, <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code> disetel ke <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.search_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">search_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.search_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> untuk mengadakan sebah kotak pencarian pada halaman daftar rubah admin. Ini harus disetel ke sebuah daftar dari nama-nama bidang yang akan dicari kapanpun seseorang mengajukan permintaan pencarian di kotak teks itu.</p>\n<p>Bidang-bidang ini harus ada semacam bidang teks, seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">TextField</span></code>. Anda dapat juga melakukan pencarian terkait pada sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> catatan &quot;follow&quot; dengan API pencarian:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;foreign_key__related_fieldname&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Sebagai contoh, jika anda mempunyai sebuah masukan blog dengan sebuah penulis, pengertian berikut akan mengadakan pencarian masukan blog berdasarkan alamat surel dari penulis.</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;user__email&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>When somebody does a search in the admin search box, Django splits the\nsearch query into words and returns all objects that contain each of the\nwords, case-insensitive (using the <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-icontains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">icontains</span></code></a> lookup), where each\nword must be in at least one of <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code>. For example, if\n<code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">['first_name',</span> <span class=\"pre\">'last_name']</span></code> and a user\nsearches for <code class=\"docutils literal notranslate\"><span class=\"pre\">john</span> <span class=\"pre\">lennon</span></code>, Django will do the equivalent of this SQL\n<code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code> clause:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"SQL code\"><code><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">last_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john%&#39;</span><span class=\"p\">)</span>\n<span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%lennon%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">last_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%lennon%&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>The search query can contain quoted phrases with spaces. For example, if a\nuser searches for <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;john</span> <span class=\"pre\">winston&quot;</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">'john</span> <span class=\"pre\">winston'</span></code>, Django will do\nthe equivalent of this SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code> clause:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"SQL code\"><code><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john winston%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">last_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john winston%&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda tidak ingin menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">icontains</span></code> sebagai pencarian, anda dapat menggunakan pencarian apapun dengan menambahkan itu ke bidang. Sebagai contoh, anda dapat menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-exact\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">exact</span></code></a> dengan menyetel <code class=\"docutils literal notranslate\"><span class=\"pre\">search_field</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">['first_name__exact']</span></code>.</p>\n<p>Beberapa jalan pintas (paling lama) untuk menentukan pencarian bidang juga tersedia. Anda dapat menambahkan sebuah bidang dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> dengan karakter berikut dan itu setara pada menambahkan <code class=\"docutils literal notranslate\"><span class=\"pre\">__</span></code> ke bidang:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Awalan</p></th>\n<th class=\"head\"><p>Cari</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>^</p></td>\n<td><p><a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-startswith\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">startswith</span></code></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>=</p></td>\n<td><p><a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-iexact\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">iexact</span></code></a></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>&#64;</p></td>\n<td><p><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/postgres/search/#std-fieldlookup-search\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">search</span></code></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>None</p></td>\n<td><p><a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-icontains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">icontains</span></code></a></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Jika anda butuh menyesuaikan pencarian anda dapat menggunakan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_search_results\" title=\"django.contrib.admin.ModelAdmin.get_search_results\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_search_results()</span></code></a> untuk menyediakan tambahan atau pengganti perilaku pencarian.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>Searches using multiple search terms are now applied in a single call\nto <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code>, rather than in sequential <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code> calls.</p>\n<p>For multi-valued relationships, this means that rows from the related\nmodel must match all terms rather than any term. For example, if\n<code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">['child__name',</span> <span class=\"pre\">'child__age']</span></code>, and a\nuser searches for <code class=\"docutils literal notranslate\"><span class=\"pre\">'Jamal</span> <span class=\"pre\">17'</span></code>, parent rows will be returned only if\nthere is a relationship to some 17-year-old child named Jamal, rather\nthan also returning parents who merely have a younger or older child\nnamed Jamal in addition to some other 17-year-old.</p>\n<p>See the <a class=\"reference internal\" href=\"/id/4.1/topics/db/queries/#spanning-multi-valued-relationships\"><span class=\"std std-ref\">Membentangkan hubungan banyak-nilai</span></a> topic for more\ndiscussion of this difference.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.search_help_text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">search_help_text</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.search_help_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"4.0\">\n<p class=\"version-note-title\">New in Django 4.0</p></aside>\n<p>Set <code class=\"docutils literal notranslate\"><span class=\"pre\">search_help_text</span></code> to specify a descriptive text for the search box\nwhich will be displayed below it.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.show_full_result_count\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">show_full_result_count</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.show_full_result_count\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">show_full_result_count</span></code> untuk mengendalikan apakah perhitungan penuh dari obyek harus ditampilkan pada halaman admin disaring (misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">99</span> <span class=\"pre\">hasil</span> <span class=\"pre\">(jumlah</span> <span class=\"pre\">103)</span></code>). Jika pilihan ini disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, sebuah teks seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">99</span> <span class=\"pre\">hasil</span> <span class=\"pre\">(Tampilkan</span> <span class=\"pre\">semua)</span></code> ditampilkan sebagai gantinya.</p>\n<p>Awalan dari <code class=\"docutils literal notranslate\"><span class=\"pre\">show_full_result_count=True</span></code> membangkitkan sebuah permintaan untuk melakukan perhitungan penuh pada tabel yang dapat mahal jika isi tabel mengandung sejumlah nomor dari baris.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.sortable_by\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">sortable_by</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.sortable_by\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>By default, the change list page allows sorting by all model fields (and\ncallables that use the <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> argument to the\n<a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> decorator or have the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">admin_order_field</span></code> attribute) specified in <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a>.</p>\n<p>Jika anda ingin meniadakan pemilihan untuk beberapa kolom, setel <code class=\"docutils literal notranslate\"><span class=\"pre\">sortable_by</span></code> pada sebuah kumpulan (misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code>, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">set</span></code>) dari himpunan bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a> yang anda ingin menjadi dapat dipilih. Sebuah kumpulan kosong meniadakan pemilihan untuk semua kolom.</p>\n<p>Jika anda butuh menentukan daftar ini secara dinamis, terapkan metode <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_sortable_by\" title=\"django.contrib.admin.ModelAdmin.get_sortable_by\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_sortable_by()</span></code></a> sebagai gantinya.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.view_on_site\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">view_on_site</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.view_on_site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Setel <code class=\"docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code> untuk mengendalikan apakah atau tidak ditampilkan tautan &quot;View on site&quot;. Tautan ini harus membawa anda ke URL dimana anda dapat menampilkan obyek tersimpan.</p>\n<p>Nilai ini dapat berupa baik bendera boolean atau callable. Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (awalan), metode obyek <a class=\"reference internal\" href=\"/id/4.1/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a> akan digunakan untuk membangkitkan url.</p>\n<p>Jika model anda mempunyai metode <a class=\"reference internal\" href=\"/id/4.1/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a> tetapi anda tidak ingin tombol &quot;View on site&quot; muncul, anda hanya butuh mensetel <code class=\"docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">view_on_site</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n</code></pre></div>\n<p>Di kasus itu adalah callable, itu menerima instance model sebagai parameter. Sebagi contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">view_on_site</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;person-detail&#39;</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;slug&#39;</span><span class=\"p\">:</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">slug</span><span class=\"p\">})</span>\n        <span class=\"k\">return</span> <span class=\"s1\">&#39;https://example.com&#39;</span> <span class=\"o\">+</span> <span class=\"n\">url</span>\n</code></pre></div>\n</dd></dl>\n\n<section id=\"custom-template-options\">\n<h4>Penyesuaian pilihan cetakan<a class=\"heading-anchor\" href=\"#custom-template-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Bagian <a class=\"reference internal\" href=\"#admin-overriding-templates\"><span class=\"std std-ref\">Menimpa cetakan admin</span></a> menggambarkan bagaimana menimpa atau memperpanjang awalan cetakan admin. Gunakan pilihan berikut untuk mengesampingkan cetakan awalan digunakan oleh tampilan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.add_form_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_form_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.add_form_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian, digunakan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.add_view\" title=\"django.contrib.admin.ModelAdmin.add_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.change_form_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_form_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.change_form_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur untuk cetakan penyesuaian, digunakan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.change_view\" title=\"django.contrib.admin.ModelAdmin.change_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">change_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.change_list_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_list_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.change_list_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian, digunakan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.changelist_view\" title=\"django.contrib.admin.ModelAdmin.changelist_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">changelist_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_confirmation_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_confirmation_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_confirmation_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian, digunakan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_view\" title=\"django.contrib.admin.ModelAdmin.delete_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete_view()</span></code></a> untuk menampilkan halaman penegasan ketika menghapus satu atau lebih obyek.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_selected_confirmation_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_selected_confirmation_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_selected_confirmation_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian, digunakan oleh tindakan <code class=\"docutils literal notranslate\"><span class=\"pre\">delete_selected</span></code> untuk memperlihatkan halaman penegasan ketika menghapus satu atau lebih obyek. Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/actions/\"><span class=\"doc\">actions documentation</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.object_history_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">object_history_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.object_history_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian, digunakan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.history_view\" title=\"django.contrib.admin.ModelAdmin.history_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">history_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.popup_response_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">popup_response_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.popup_response_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian, digunakan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.response_add\" title=\"django.contrib.admin.ModelAdmin.response_add\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">response_add()</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.response_change\" title=\"django.contrib.admin.ModelAdmin.response_change\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">response_change()</span></code></a>, dan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.response_delete\" title=\"django.contrib.admin.ModelAdmin.response_delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">response_delete()</span></code></a>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"modeladmin-methods\">\n<span id=\"model-admin-methods\"></span><h3>Cara <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code><a class=\"heading-anchor\" href=\"#modeladmin-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Ketika menimpa <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.save_model\" title=\"django.contrib.admin.ModelAdmin.save_model\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.save_model()</span></code></a> dan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_model\" title=\"django.contrib.admin.ModelAdmin.delete_model\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.delete_model()</span></code></a>, kode anda harus simpan/hapus obyek. Mereka tidak berarti untuk tujuan melarang, daripada mereka mengizinkan anda melakukan tindakan tambahan.</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">change</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">save_model</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>, sebuah instance model, sebuah instance <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>, dan sebuah nilai boolean berdasarkan pada apakah itu sedang menambahkan atau merubah obyek. Menimpa metode ini mengizinkan melakukan tindakan pra- atau menempatkan-simpan. Memanggil <code class=\"docutils literal notranslate\"><span class=\"pre\">super().save_model()</span></code> untuk menyimpan obyek menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.save()</span></code></a>.</p>\n<p>Sebagai contoh untuk melampirkan <code class=\"docutils literal notranslate\"><span class=\"pre\">request.user</span></code> pada obyek sebelum menyimpannya:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save_model</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">change</span><span class=\"p\">):</span>\n        <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">save_model</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">change</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">delete_model</span></code> diberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan sebuah instance model. Mengesampingkan metode ini mengizinkan melakukan tindakan menghapus pra- atau pasca-. Panggil <code class=\"docutils literal notranslate\"><span class=\"pre\">super().delete_model()</span></code> untuk menghapus obyek menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/models/instances/#django.db.models.Model.delete\" title=\"django.db.models.Model.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.delete()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_queryset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_queryset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_queryset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">delete_queryset()</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> dari obyek untuk dihapus. Timpa metode ini untuk menyesuaikan pengolahan penghapusan untuk &quot;delete selected objects&quot; <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/actions/\"><span class=\"doc\">action</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_formset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">change</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">save_formset</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>, instance <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> induk dan nilai boolean berdasarkan pada apakah itu sedang menambahkan atau merubah obyek induk.</p>\n<p>Sebagai contoh, untuk melampirkan <code class=\"docutils literal notranslate\"><span class=\"pre\">request.user</span></code> pada setiap instance model formset dirubah:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save_formset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">formset</span><span class=\"p\">,</span> <span class=\"n\">change</span><span class=\"p\">):</span>\n        <span class=\"n\">instances</span> <span class=\"o\">=</span> <span class=\"n\">formset</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"n\">commit</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n        <span class=\"k\">for</span> <span class=\"n\">obj</span> <span class=\"ow\">in</span> <span class=\"n\">formset</span><span class=\"o\">.</span><span class=\"n\">deleted_objects</span><span class=\"p\">:</span>\n            <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n        <span class=\"k\">for</span> <span class=\"n\">instance</span> <span class=\"ow\">in</span> <span class=\"n\">instances</span><span class=\"p\">:</span>\n            <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span>\n            <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n        <span class=\"n\">formset</span><span class=\"o\">.</span><span class=\"n\">save_m2m</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Lihat juga <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#saving-objects-in-the-formset\"><span class=\"std std-ref\">Saving objects in the formset</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_ordering\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_ordering</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_ordering\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_ordering</span></code> mengambil <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> sebagai parameter dan diharapkan mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> untuk mengurutkan mirip pada atribut <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ordering\" title=\"django.contrib.admin.ModelAdmin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_ordering</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;rank&#39;</span><span class=\"p\">]</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_search_results\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_search_results</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">search_term</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_search_results\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_search_results</span></code> merubah daftar dari obyek-obyek diperlihatkan kedalam itu yang cocok istilah pencarian disediakan. Itu menerima permintaan, sebuah queryset yang memberlakukan penyaring saat ini, dan istilah pencarian disediakan-pengguna. Itu mengembalikan sebuah tuple mengandung sebuah queryset dirubah untuk menerapkan pencarian, dan sebuah boolean mengindikasikan jika hasil mungkin mengandung ganda.</p>\n<p>Pencarian penerapan awalan bidang-bidang bernama di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.search_fields\" title=\"django.contrib.admin.ModelAdmin.search_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.search_fields</span></code></a>.</p>\n<p>This method may be overridden with your own custom search method. For\nexample, you might wish to search by an integer field, or use an external\ntool such as <a class=\"reference external\" href=\"https://solr.apache.org\">Solr</a> or <a class=\"reference external\" href=\"https://haystacksearch.org\">Haystack</a>. You must establish if the queryset\nchanges implemented by your search method may introduce duplicates into the\nresults, and return <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> in the second element of the return value.</p>\n<p>Sebagai contoh, untuk mencari <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">age</span></code>, anda dapat menggunakan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;age&#39;</span><span class=\"p\">)</span>\n    <span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_search_results</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">search_term</span><span class=\"p\">):</span>\n        <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">may_have_duplicates</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_search_results</span><span class=\"p\">(</span>\n            <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">search_term</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n        <span class=\"k\">try</span><span class=\"p\">:</span>\n            <span class=\"n\">search_term_as_int</span> <span class=\"o\">=</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"n\">search_term</span><span class=\"p\">)</span>\n        <span class=\"k\">except</span> <span class=\"ne\">ValueError</span><span class=\"p\">:</span>\n            <span class=\"k\">pass</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"n\">queryset</span> <span class=\"o\">|=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">model</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">age</span><span class=\"o\">=</span><span class=\"n\">search_term_as_int</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">may_have_duplicates</span>\n</code></pre></div>\n<p>Penerapan ini lebih efesien dari <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span> <span class=\"pre\">=</span> <span class=\"pre\">('name',</span> <span class=\"pre\">'=age')</span></code> yang menghasilkan dalam sebuah perbandingan string untuk bidang numerik, sebagai contoh <code class=\"docutils literal notranslate\"><span class=\"pre\">...</span> <span class=\"pre\">OR</span> <span class=\"pre\">UPPER(&quot;polls_choice&quot;.&quot;votes&quot;::text)</span> <span class=\"pre\">=</span> <span class=\"pre\">UPPER('4')</span></code> pada PostgreSQL.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>Searches using multiple search terms are now applied in a single call\nto <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code>, rather than in sequential <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code> calls.</p>\n<p>For multi-valued relationships, this means that rows from the related\nmodel must match all terms rather than any term. For example, if\n<code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">['child__name',</span> <span class=\"pre\">'child__age']</span></code>, and a\nuser searches for <code class=\"docutils literal notranslate\"><span class=\"pre\">'Jamal</span> <span class=\"pre\">17'</span></code>, parent rows will be returned only if\nthere is a relationship to some 17-year-old child named Jamal, rather\nthan also returning parents who merely have a younger or older child\nnamed Jamal in addition to some other 17-year-old.</p>\n<p>See the <a class=\"reference internal\" href=\"/id/4.1/topics/db/queries/#spanning-multi-valued-relationships\"><span class=\"std std-ref\">Membentangkan hubungan banyak-nilai</span></a> topic for more\ndiscussion of this difference.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_related\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_related</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formsets</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">change</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_related\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">save_related</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>, sebuah instance <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> induk, daftar dari formset berderet dan sebuah nilai boolean berdasarkan pada apakah induk sedang ditambahkan atau dirubah. Disini anda dapat melakukan tindakan pra- atau pasca- untuk obyek-obyek terkait ke induk. Catat bahwa pada titik ini obyek induk dan formulirnya telah disimpan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_autocomplete_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_autocomplete_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_autocomplete_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_autocomplete_fields()</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan diharapkan mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dari nama bidang yang akan ditampilkan dengan sebuah widget pelengkapan otomatis seperti digambarkan diatas dalam bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.autocomplete_fields\" title=\"django.contrib.admin.ModelAdmin.autocomplete_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.autocomplete_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_readonly_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_readonly_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_readonly_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_readonly_fields</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sedang disunting atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pada sebuah formulir tambah) dan diharapkan mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> (atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dari nama-nama bidang yang akan diperlihatkan sebagai hanya-baca, seperti digambarkan diatas di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.readonly_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_prepopulated_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_prepopulated_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_prepopulated_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_prepopulated_fields</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sedang disunting (atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pada sebuah formulir tambah) dan diharapkan untuk mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">dictionary</span></code>, seperti digambarkan diatas di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.prepopulated_fields\" title=\"django.contrib.admin.ModelAdmin.prepopulated_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.prepopulated_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_display</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_display</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan diharapkan mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dari nama-nama bidang yang akan diperlihatkan pada tampilan daftar rubah seperti digambarkan diatas di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_display</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_display_links\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_display_links</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">list_display</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_display_links\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_display_links</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dikembalikan oleh <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_display\" title=\"django.contrib.admin.ModelAdmin.get_list_display\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_list_display()</span></code></a>. Itu diharapkan mengembalikan antara <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> atau sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dari nama-nama bidang pada daftar rubah yang akan ditautkan ke tampilan rubah, seperti digambarkan di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display_links\" title=\"django.contrib.admin.ModelAdmin.list_display_links\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_display_links</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_exclude\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_exclude</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_exclude\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_exclude</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sedang disunting (atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pada sebuah formulir tambah) dan diharapkan untuk mengembalikan sebuah daftar dari bidang-bidang, seperti digambarkan diatas di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.exclude\" title=\"django.contrib.admin.ModelAdmin.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.exclude</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_fields</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sedang disunting (atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pada sebuah formulir tambah) dan diharapkan untuk mengembalikan sebuah daftar dari bidang-bidang, seperti digambarkan diatas di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_fieldsets\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_fieldsets</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_fieldsets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_fieldsets</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sedang disunting atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pada sebuah formulir tambah) dan diharapkan mengembalikan sebuah daftar dari dua-tuple, dimana setiap dua-tuple mewakili sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> pada halaman formulir admin, seperti digambarkan diatas di bagian <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_filter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_filter</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_filter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_filter</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan diharapkan mengembalikan jenis yang sama dari urutan jenis seperti untuk atribut <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_select_related\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_select_related</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_select_related\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_select_related</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan harus mengembalikan sebuah boolean atau daftar seperti <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_select_related\" title=\"django.contrib.admin.ModelAdmin.list_select_related\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_select_related</span></code></a> lakukan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_search_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_search_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_search_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_search_fields</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan diharapkan mengembalikan jenis yang sama dari urutan jenis seperti untuk atribut <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.search_fields\" title=\"django.contrib.admin.ModelAdmin.search_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">search_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_sortable_by\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_sortable_by</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_sortable_by\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_sortable_by()</span></code> melewatkan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan dan diharapapkan mengembalikan kumpulan (misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code>, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">set</span></code>) dari nama-nama bidang yang akan diurutkan dalam halaman daftar rubah.</p>\n<p>Penerapan awalnya mengambalikan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.sortable_by\" title=\"django.contrib.admin.ModelAdmin.sortable_by\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">sortable_by</span></code></a> jika disetel, sebaliknya itu menunda ke <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_display\" title=\"django.contrib.admin.ModelAdmin.get_list_display\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_list_display()</span></code></a>.</p>\n<p>Sebagai contoh, untuk mencegah satu atau lebih kolom dari menjadi dapat diurutkan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_sortable_by</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">{</span><span class=\"o\">*</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_list_display</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">)}</span> <span class=\"o\">-</span> <span class=\"p\">{</span><span class=\"s1\">&#39;rank&#39;</span><span class=\"p\">}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_inline_instances\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_inline_instances</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_inline_instances\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_inline_instances</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sedang dirubah (atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pada formulir tambah) dan diharapkan mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> dari obyek <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>, seperti digambarkan dibawah dalam bagian <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>. Sebagai contoh, berikut akan mengembalikan dibarisan tanpa penyaringan awalan berdasarkan pada perizinan tambah, rubah, hapus, dan menampilkan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">MyInline</span><span class=\"p\">,)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_inline_instances</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">inline</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">model</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"p\">)</span> <span class=\"k\">for</span> <span class=\"n\">inline</span> <span class=\"ow\">in</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">inlines</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Jika anda mengutamakan metode ini, pastikan bahwa berderet dikembalikan adalah instance dari kelas-kelas ditentukan di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.inlines\" title=\"django.contrib.admin.ModelAdmin.inlines\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">inlines</span></code></a> atau anda mungkin menghadapi kesalahan &quot;Bad Request&quot; ketika menambahkan obyek-obyek terkait.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_inlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_inlines</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_inlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">get_inlines</span></code> method is given the <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> and the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> being edited (or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> on an add form) and is expected to return\nan iterable of inlines. You can override this method to dynamically add\ninlines based on the request or model instance instead of specifying them\nin <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.inlines\" title=\"django.contrib.admin.ModelAdmin.inlines\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.inlines</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_urls\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_urls</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_urls\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">get_urls</span></code> method on a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> returns the URLs to be used for\nthat ModelAdmin in the same way as a URLconf.  Therefore you can extend\nthem as documented in <a class=\"reference internal\" href=\"/id/4.1/topics/http/urls/\"><span class=\"doc\">Pengirim URL</span></a>, using the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.admin_view()</span></code> wrapper on your views:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.template.response</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">TemplateResponse</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_urls</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">urls</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_urls</span><span class=\"p\">()</span>\n        <span class=\"n\">my_urls</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;my_view/&#39;</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">admin_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">my_view</span><span class=\"p\">))</span>\n        <span class=\"p\">]</span>\n        <span class=\"k\">return</span> <span class=\"n\">my_urls</span> <span class=\"o\">+</span> <span class=\"n\">urls</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"nb\">dict</span><span class=\"p\">(</span>\n           <span class=\"c1\"># Include common variables for rendering the admin template.</span>\n           <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">each_context</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">),</span>\n           <span class=\"c1\"># Anything else you want in the context...</span>\n           <span class=\"n\">key</span><span class=\"o\">=</span><span class=\"n\">value</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"n\">TemplateResponse</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"s2\">&quot;sometemplate.html&quot;</span><span class=\"p\">,</span> <span class=\"n\">context</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda ingin menggunakan tata letak admin, perpanjang dari <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;admin/base_site.html&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">content</span> <span class=\"cp\">%}</span>\n...\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Notice how the <code class=\"docutils literal notranslate\"><span class=\"pre\">self.my_view</span></code> function is wrapped in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">self.admin_site.admin_view</span></code>. This is important, since it ensures two\nthings:</p>\n<ol class=\"arabic simple\">\n<li><p>Permission checks are run, ensuring only active staff users can\naccess the view.</p></li>\n<li><p>The <a class=\"reference internal\" href=\"/id/4.1/topics/http/decorators/#django.views.decorators.cache.never_cache\" title=\"django.views.decorators.cache.never_cache\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.views.decorators.cache.never_cache()</span></code></a> decorator is\napplied to prevent caching, ensuring the returned information is\nup-to-date.</p></li>\n</ol>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Perhatikan bahwa pola penyesuaian disertakan <em>sebelum</em> URL admin biasa: pola URL admin  adalah sangat membolehkan dan akan cocok hampir apapun, jadi anda akan biasanya ingin menambahkan URL penyesuaian anda pada satu di siap-pakai.</p>\n<p>Di contoj ini, <code class=\"docutils literal notranslate\"><span class=\"pre\">my_view</span></code> akan diakses pada <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/myapp/mymodel/my_view/</span></code> (menganggap URL admin disertakan pada <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/</span></code>.)</p>\n</aside>\n<p>Jika halaman adalah cacheable, tetapi anda masih ingin pemeriksaan perizinan dilakukan, anda dapat melewatkan sebuah argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">cacheable=True</span></code> pada <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.admin_view()</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;my_view/&#39;</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">admin_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">my_view</span><span class=\"p\">,</span> <span class=\"n\">cacheable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Tampilan <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> mempunyai atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">model_admin</span></code>. Selain tampilan <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> mempunyai atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_site</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_form</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan sebuah kelas <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> untuk digunakan di tampilan tambah dan rubah admin, lihat <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.add_view\" title=\"django.contrib.admin.ModelAdmin.add_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_view()</span></code></a> dan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.change_view\" title=\"django.contrib.admin.ModelAdmin.change_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">change_view()</span></code></a>.</p>\n<p>Penerapan dasar menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/forms/models/#django.forms.models.modelform_factory\" title=\"django.forms.models.modelform_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">modelform_factory()</span></code></a> pada subkelas <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.form\" title=\"django.contrib.admin.ModelAdmin.form\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">form</span></code></a>, dirubah oleh atribut seperti  <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> dan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.exclude\" title=\"django.contrib.admin.ModelAdmin.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a>. Jadi, sebagai contoh, jika anda ingin menawarkan tambahan bidang-bidang le superuser, anda dapat menukar formulir dasar berbeda seperi begitu:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_form</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s1\">&#39;form&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">MySuperuserForm</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_form</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Anda mungkin juga mengembalikan kelas <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> penyesuaian langsung.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_formsets_with_inlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_formsets_with_inlines</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_formsets_with_inlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menghasilkan (<code class=\"docutils literal notranslate\"><span class=\"pre\">FormSet</span></code>, <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>) pasangan untuk digunakan di tampilan tambah dan rubah admin.</p>\n<p>Sebagai contoh jika anda ingin memperlihatkan hanya berderet tertentu di tampilan rubah, anda dapat menimpa <code class=\"docutils literal notranslate\"><span class=\"pre\">get_formsets_with_inlines</span></code> sebagai berikut:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">MyInline</span><span class=\"p\">,</span> <span class=\"n\">SomeOtherInline</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_formsets_with_inlines</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"k\">for</span> <span class=\"n\">inline</span> <span class=\"ow\">in</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_inline_instances</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n            <span class=\"c1\"># hide MyInline in the add view</span>\n            <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">inline</span><span class=\"p\">,</span> <span class=\"n\">MyInline</span><span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"n\">obj</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n                <span class=\"k\">yield</span> <span class=\"n\">inline</span><span class=\"o\">.</span><span class=\"n\">get_formset</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">),</span> <span class=\"n\">inline</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_for_foreignkey\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_for_foreignkey</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_foreignkey\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey</span></code> pada sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> mengizinkan anda menimpa formfield awalan untuk bidang foreign key. Sebagai contoh, untuk mengembalikan bagian dari obyek-obyek untuk bidang foreign key ini berdasarkan pada pengguna:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">formfield_for_foreignkey</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">db_field</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;car&quot;</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;queryset&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">Car</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">owner</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">formfield_for_foreignkey</span><span class=\"p\">(</span><span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Penggunaan ini instance <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> untuk menyaring bidang foreign key <code class=\"docutils literal notranslate\"><span class=\"pre\">Car</span></code> ke hanya meperlihatkan mobil dimiliki oleh instance <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code>.</p>\n<p>For more complex filters, you can use <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm.__init__()</span></code> method to\nfilter based on an <code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code> of your model (see\n<a class=\"reference internal\" href=\"/id/4.1/ref/forms/fields/#fields-which-handle-relationships\"><span class=\"std std-ref\">Bidang-bidang yang menangani hubungan</span></a>). For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CountryAdminForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s1\">&#39;capital&#39;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">cities</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CountryAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">CountryAdminForm</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_for_manytomany\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_for_manytomany</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_manytomany\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Seperti metode <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey</span></code>, metode <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_manytomany</span></code> dapat dikesampingkan untuk merubah formfield awalan untuk bidang many to many. Sebagai contoh, jika seorang pemilik dapat memiliki banyak mobil dan mobil dapat dimiliki banyak pemilik -- hubungan many to many -- anda dapat penyaring bidang foreign key <code class=\"docutils literal notranslate\"><span class=\"pre\">Car</span></code> pada hanya memperlihatkan pemilik mobil berdasarkan <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">formfield_for_manytomany</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">db_field</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;cars&quot;</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;queryset&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">Car</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">owner</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">formfield_for_manytomany</span><span class=\"p\">(</span><span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_for_choice_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_for_choice_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_choice_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Seperti metode <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_manytomany</span></code>, metode <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_choice_field</span></code> dapat ditimpa untuk merubah formfield awalan untuk sebuah bidang yang telah menyatakan pilihan. Sebagai contoh, jika pilihan tersedia pada superuser harus berbeda dari tersebut tersedia pada staf biasa, anda dapat meneruskan sebagai berikut:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">formfield_for_choice_field</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">db_field</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;status&quot;</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s1\">&#39;choices&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n                <span class=\"p\">(</span><span class=\"s1\">&#39;accepted&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Accepted&#39;</span><span class=\"p\">),</span>\n                <span class=\"p\">(</span><span class=\"s1\">&#39;denied&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Denied&#39;</span><span class=\"p\">),</span>\n            <span class=\"p\">)</span>\n            <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n                <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s1\">&#39;choices&#39;</span><span class=\"p\">]</span> <span class=\"o\">+=</span> <span class=\"p\">((</span><span class=\"s1\">&#39;ready&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Ready for deployment&#39;</span><span class=\"p\">),)</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">formfield_for_choice_field</span><span class=\"p\">(</span><span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-note admonition\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Setiap kumpulan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> pada formfield akan dibatasi pada hanya bidang formulir. Jika bidang berhubungan pada model mempunyai kumpulan pilihan, pilihan-pilihan akan disediakan pada formulir harus berupa subkumpulan sah dari pilihan-pilihan tersebut, sebaliknya pengajuan formulir akan gagal dengan sebuah <a class=\"reference internal\" href=\"/id/4.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> ketika model itu sendiri disahkan sebelum disimpan.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changelist\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changelist</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changelist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">Changelist</span></code> untuk digunakan untuk pendaftaran. Secara awalan, <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.views.main.ChangeList</span></code> digunakan. Dengan mewarisi kelas ini anda dapat merubah perilaku dari pendaftaran.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changelist_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changelist_form</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changelist_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan sebuah kelas <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> untuk digunakan di  <code class=\"docutils literal notranslate\"><span class=\"pre\">Formset</span></code> pada halaman daftar rubah. Untuk menggunakan formulir penyesuaian, sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_changelist_form</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">MyForm</span>\n</code></pre></div>\n<aside class=\"admonition-note admonition\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Jika anda menentukan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code> pada sebuah <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>, anda harus juga menentukan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> (atau atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.exclude</span></code>). Bagaimanapun, <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> mengabaikan nilai ini, menimpa itu dengan atribut <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_editable\" title=\"django.contrib.admin.ModelAdmin.list_editable\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_editable</span></code></a>. Pemecahan paling mudah adalah menghilangkan atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code>, sejak <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> akan menyediakan model benar untuk digunakan.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changelist_formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changelist_formset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changelist_formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan sebuah kelas <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#model-formsets\"><span class=\"std std-ref\">ModelFormSet</span></a> untuk digunakan pada halaman daftar rubah jika <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_editable\" title=\"django.contrib.admin.ModelAdmin.list_editable\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_editable</span></code></a> digunakan. Untuk menggunakan formset penyesuaian, sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">BaseModelFormSet</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminFormSet</span><span class=\"p\">(</span><span class=\"n\">BaseModelFormSet</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_changelist_formset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s1\">&#39;formset&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">MyAdminFormSet</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_changelist_formset</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.lookup_allowed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">lookup_allowed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lookup</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.lookup_allowed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Obyek-obyek dalam halaman daftar rubah dapat disaring dengan pencarian dari string permintaan URL. Ini adalah bagaimana <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a> bekerja, sebagai contoh. Pencarian mirip pada apa yang digunakan dalam <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.filter()</span></code></a> (misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">user__email=user&#64;example.com</span></code>). Sejak pencarian dalam string permintaan dapat diubah oleh pengguna, mereka harus dibersihkan untuk mencegah pembukaan data tidak berhak.</p>\n<p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_allowed()</span></code> memberikan jalur pencarian dari string permintaan (misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">'user__email'</span></code>) dan nilai terkait (misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">'user&#64;example.com'</span></code>), dan mengembalikan boolean menunjukkan apakah penyaringan <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> daftar rubah menggunakan parameter diizinkan. Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_allowed()</span></code> mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">DisallowedModelAdminLookup</span></code> (subkelas dari <a class=\"reference internal\" href=\"/id/4.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">SuspiciousOperation</span></code></a>) dimunculkan.</p>\n<p>Secara awalan, <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_allowed()</span></code> mengizinkan akses pada bidang lokal model, jalur-jalur bidang digunakan dalam <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a> (tetapi bukan jalur dari <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_filter\" title=\"django.contrib.admin.ModelAdmin.get_list_filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_list_filter()</span></code></a>), dan pencarian dibutuhkan untuk <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to\" title=\"django.db.models.ForeignKey.limit_choices_to\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">limit_choices_to</span></code></a> pada fungsi dengan benar dalam <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.raw_id_fields\" title=\"django.contrib.admin.ModelAdmin.raw_id_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code></a>.</p>\n<p>Menimpa metode ini untuk menyesuaikan pencarian diizinkan untuk subkelas <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> anda.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_view_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_view_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_view_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika menampilkan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. Jika obj adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> untuk menunjukkan apakah menampilkan obyek dari jenis ini diizinkan secara umum (misalnya, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> akan diterjemahkan sebagai artian bahwa pengguna saat ini tidak diizinkan menampilkan obyek apapun dai jenis ini).</p>\n<p>Penerapan awalan mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika pengguna mempunyai baik perizinan &quot;change&quot; atau &quot;view&quot;.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_add_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_add_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_add_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika menambahkan sebuah obyek diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_change_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_change_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_change_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika penyuntingan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> untuk menunjukkan apakah penyuntingan dari obyek jenis ini diizinkan secara umum (misalnya, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> akan diterjemahkan sesuai artian bahwa pengguna saat ini tidak diizinkan untuk menyunting obyek apapun dari jenis ini).</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_delete_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_delete_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_delete_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika penghapusan <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> untuk menunjukkan apakah penghapusan obyek jenis ini diizinkan secara umum (misalnya, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> jika diterjemahkan sesuai artian bahwa pengguna saat ini tidak diizinkan menghapus obyek apapun dari jenis ini).</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_module_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_module_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_module_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika menampilkan modul pada halaman index admin dan mengakses halaman index admin diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. Menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/auth/#django.contrib.auth.models.User.has_module_perms\" title=\"django.contrib.auth.models.User.has_module_perms\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">User.has_module_perms()</span></code></a> secara awalan. menimpa itu tidak membatasi akses pada tampilan melihat, tambah, rubah, atau hapus, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_view_permission\" title=\"django.contrib.admin.ModelAdmin.has_view_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_view_permission()</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_add_permission\" title=\"django.contrib.admin.ModelAdmin.has_add_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_add_permission()</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_change_permission\" title=\"django.contrib.admin.ModelAdmin.has_change_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_change_permission()</span></code></a>, dan <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_delete_permission\" title=\"django.contrib.admin.ModelAdmin.has_delete_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_delete_permission()</span></code></a> harus digunakan untuk itu.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_queryset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_queryset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_queryset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_queryset</span></code> pada sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> mengembalikan sebuah <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> dari semua instance model yang dapat disunting oleh situs admin. Satu kasus penggunaan dari mengutamakan metode ini adalah menunjukkan obyek-obyek dimiliki oleh pengguna masuk:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_queryset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_queryset</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">qs</span>\n        <span class=\"k\">return</span> <span class=\"n\">qs</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.message_user\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">message_user</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">level</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">messages.INFO</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_tags</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.message_user\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengirim sebuah pesan ke pengguna menggunakan backend <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a>. Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/actions/#custom-admin-action\"><span class=\"std std-ref\">custom ModelAdmin example</span></a>.</p>\n<p>Argumen kata kunci mengizinkan anda merubah tingkatan pesan, menambah tambahan etiket CSS, atau gagal secara diam jika kerangka kerja <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.messages</span></code> tidak dipasang. Argumen kata kunci ini cocok dengan untuk <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/messages/#django.contrib.messages.add_message\" title=\"django.contrib.messages.add_message\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.add_message()</span></code></a>, lihat dokumentasi fungsi itu untuk lebih rinci. Satu perbedaan adalah bahwa tingkatan mungkin dilewatkan sebagai label string sebagai tambahan pada integer/ketetapan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_paginator\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_paginator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">per_page</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">orphans</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">allow_empty_first_page</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_paginator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan sebuah instance dari penomor digunakan untuk tampilan ini. Secara awalan, instasiasi sebuah instance dari <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.paginator\" title=\"django.contrib.admin.ModelAdmin.paginator\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">paginator</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.response_add\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">response_add</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">post_url_continue</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.response_add\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menentukan tahap the <a class=\"reference internal\" href=\"/id/4.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> for the <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.add_view\" title=\"django.contrib.admin.ModelAdmin.add_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_view()</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">response_add</span></code> dipanggil setelah formulir admin diajukan dan hanya setelah obyek dan semua instances terkait telah dibuat dan disimpan. Anda dapat menimpanya untuk merubah perilaku awalan setelah obyek telah dibuat.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.response_change\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">response_change</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.response_change\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menentukan tahap <a class=\"reference internal\" href=\"/id/4.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> for the <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.change_view\" title=\"django.contrib.admin.ModelAdmin.change_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">change_view()</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">response_change</span></code> dipanggil setelah formulir admin diajukan dan hanya setelah obyek dan semua instances terkait telah disimpan. Anda dapat menimpanya untuk merubah perilaku awalan setelah obyek telah dirubah.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.response_delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">response_delete</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj_display</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj_id</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.response_delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menentukan <a class=\"reference internal\" href=\"/id/4.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> untuk tahap <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_view\" title=\"django.contrib.admin.ModelAdmin.delete_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete_view()</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">response_delete</span></code> dipanggil setelah obyek telah dihapus. Anda dapat menimpa ini untuk merubah kebiasaan awal setelah obyek telah dihapus.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">obj_display</span></code> adalah sebuah string dengan nama dari obyek terhapus.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">obj_id</span></code> adalah penciri serial digunakan untuk mengambil obyek untuk dihapus.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_formset_kwargs\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_formset_kwargs</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">inline</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">prefix</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_formset_kwargs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"4.0\">\n<p class=\"version-note-title\">New in Django 4.0</p></aside>\n<p>A hook for customizing the keyword arguments passed to the constructor of a\nformset. For example, to pass <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> to formset forms:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_formset_kwargs</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">inline</span><span class=\"p\">,</span> <span class=\"n\">prefix</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">{</span>\n            <span class=\"o\">**</span><span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_formset_kwargs</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">inline</span><span class=\"p\">,</span> <span class=\"n\">prefix</span><span class=\"p\">),</span>\n            <span class=\"s1\">&#39;form_kwargs&#39;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s1\">&#39;request&#39;</span><span class=\"p\">:</span> <span class=\"n\">request</span><span class=\"p\">},</span>\n        <span class=\"p\">}</span>\n</code></pre></div>\n<p>You can also use it to set <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> for formset forms.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changeform_initial_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changeform_initial_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changeform_initial_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah kaitan untuk data inisial pada formulir rubah admin. Secara awalan, bidang-bidang diberikan nilai-nilai inisial dari parameter <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code>. Sebagai contoh, <code class=\"docutils literal notranslate\"><span class=\"pre\">?name=initial_value</span></code> akan menyetel nilai inisial bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">initial_value</span></code>.</p>\n<p>Metode ini harus mengembalikan sebuah kamus di formulir <code class=\"docutils literal notranslate\"><span class=\"pre\">{'fieldname':</span> <span class=\"pre\">'fieldval'}</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_changeform_initial_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"p\">{</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;custom_initial_value&#39;</span><span class=\"p\">}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_deleted_objects\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_deleted_objects</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">objs</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_deleted_objects\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah kaitan untuk menyesuaikan pengeolahan penghapusan dari <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_view\" title=\"django.contrib.admin.ModelAdmin.delete_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete_view()</span></code></a> dan &quot;delete selected&quot; <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/admin/actions/\"><span class=\"doc\">action</span></a>.</p>\n<p>Argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">objs</span></code> adalah perulangan sama dari obyek (<code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> atau list dari instance model) untuk dihapus, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> adalah <a class=\"reference internal\" href=\"/id/4.1/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a>.</p>\n<p>Metode ini harus mengembalikan 4-tuple dari <code class=\"docutils literal notranslate\"><span class=\"pre\">(deleted_objects,</span> <span class=\"pre\">model_count,</span> <span class=\"pre\">perms_needed,</span> <span class=\"pre\">protected)</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">deleted_objects</span></code> list dari strings mewakili semua obyek yang akan dihapus. Jika ada obyek terkait untuk dihapus, list adalah bersarang dan menyertakan obyek terkait tersebut. List dibentuk dalam cetakan menggunakan penyaring <a class=\"reference internal\" href=\"/id/4.1/ref/templates/builtins/#std-templatefilter-unordered_list\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">unordered_list</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">model_count</span></code> adalah sebuah pemetaan dictionary setiap <a class=\"reference internal\" href=\"/id/4.1/ref/models/options/#django.db.models.Options.verbose_name_plural\" title=\"django.db.models.Options.verbose_name_plural\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name_plural</span></code></a> model ke sejumalh obyek yang akan dihapus.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">perms_needed</span></code> adalah kumpulan dari <a class=\"reference internal\" href=\"/id/4.1/ref/models/options/#django.db.models.Options.verbose_name\" title=\"django.db.models.Options.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code></a> dari model yang pengguna tidak mempunyai perizinan untuk hapus.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">protected</span></code> adalah daftar dari string mewakili semua obyek-obyek terkait terlindungi yang tidak dapat dihapus. Daftar ditampilkan dalam cetakan.</p>\n</dd></dl>\n\n<section id=\"other-methods\">\n<h4>Cara lain<a class=\"heading-anchor\" href=\"#other-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.add_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.add_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tampilan Django untuk halaman tambahan instance model. Lihat catatan dibawah.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.change_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_id</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.change_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tampilan Django untuk halaman suntingan instance model. Lihat catatan dibawah.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.changelist_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">changelist_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.changelist_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tampilan Django untuk halaman daftar rubah/tindakan instance model. Lihat catatan dibawah.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_id</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tampilan Django untuk halaman penegasan penghapusn instance model. Lihat catatan dibawah.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.history_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">history_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_id</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.history_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tampilan Django untuk halaman yang menampilan riwayat perubahan untuk instance model diberikan.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>Pagination was added.</p>\n</aside>\n</dd></dl>\n\n<p>Tidak seperti jenis-kait metode <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> dirinci di bagian sebelumnya, lima metode ini yang pada kenyataannya dirancang untuk dipanggil sebagai tampilan Django dari URL aplikasi admin mengirim penangan untuk membangun halaman-halaman yang berhubungan dengan tindakan CRUD instance-instance model. Sebagai sebuah hasil, slengkapnya mengutamakan metode ini akan secara signifikan merubah perilaku admin aplikasi admin.</p>\n<p>Satu alasan umum untuk mengutamakan metode ini adalah menambah data konteks yang disediakan ke cetakan yang membangun tampilan. Di contoh berikut, tamppilan rubah ditimpa sehingga cetakan dibangun menyediakan beberapa data pemetaan tambahan yang tidak akan sebaliknya menjadi tersedia:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n\n    <span class=\"c1\"># A template for a very customized change view:</span>\n    <span class=\"n\">change_form_template</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;admin/myapp/extras/openstreetmap_change_form.html&#39;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_osm_info</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">change_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">object_id</span><span class=\"p\">,</span> <span class=\"n\">form_url</span><span class=\"o\">=</span><span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"n\">extra_context</span> <span class=\"o\">=</span> <span class=\"n\">extra_context</span> <span class=\"ow\">or</span> <span class=\"p\">{}</span>\n        <span class=\"n\">extra_context</span><span class=\"p\">[</span><span class=\"s1\">&#39;osm_data&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_osm_info</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">change_view</span><span class=\"p\">(</span>\n            <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">object_id</span><span class=\"p\">,</span> <span class=\"n\">form_url</span><span class=\"p\">,</span> <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"n\">extra_context</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n</code></pre></div>\n<p>Tampilan ini mengembalikan instance <a class=\"reference internal\" href=\"/id/4.1/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a> yang mengizinkan anda dengan mudah menyesuaikan data tanggapan sebelum membangun. Untuk rincian lebih, lihat <a class=\"reference internal\" href=\"/id/4.1/ref/template-response/\"><span class=\"doc\">TemplateResponse documentation</span></a>.</p>\n</section>\n</section>\n<section id=\"modeladmin-asset-definitions\">\n<span id=\"id1\"></span><h3>Pengertian aset <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code><a class=\"heading-anchor\" href=\"#modeladmin-asset-definitions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ada waktu dimana anda akan menambahkan sedikit CSS dan/atay JavaScript pada tampilan tambah/rubah. Ini dapat dicapai dengan menggunakan kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">Media</span></code> sebelah dalam pada <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> anda:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Media</span><span class=\"p\">:</span>\n        <span class=\"n\">css</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;all&quot;</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"s2\">&quot;my_styles.css&quot;</span><span class=\"p\">,)</span>\n        <span class=\"p\">}</span>\n        <span class=\"n\">js</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s2\">&quot;my_code.js&quot;</span><span class=\"p\">,)</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles app</span></a> menambahkan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> (atau <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> jika <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>) pada jalur aset apapun. Peraturan sama berlaku seperti <a class=\"reference internal\" href=\"/id/4.1/topics/forms/media/#form-asset-paths\"><span class=\"std std-ref\">regular asset definitions on forms</span></a>.</p>\n<section id=\"jquery\">\n<span id=\"contrib-admin-jquery\"></span><h4>jQuery<a class=\"heading-anchor\" href=\"#jquery\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>JavaScript admin Django memanfaatkan pustaka <a class=\"reference external\" href=\"https://jquery.com\">jQuery</a></p>\n<p>To avoid conflicts with user-supplied scripts or libraries, Django's jQuery\n(version 3.6.0) is namespaced as <code class=\"docutils literal notranslate\"><span class=\"pre\">django.jQuery</span></code>. If you want to use jQuery\nin your own admin JavaScript without including a second copy, you can use the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.jQuery</span></code> object on changelist and add/edit views. Also, your own admin\nforms or widgets depending on <code class=\"docutils literal notranslate\"><span class=\"pre\">django.jQuery</span></code> must specify\n<code class=\"docutils literal notranslate\"><span class=\"pre\">js=['admin/js/jquery.init.js',</span> <span class=\"pre\">…]</span></code> when <a class=\"reference internal\" href=\"/id/4.1/topics/forms/media/#assets-as-a-static-definition\"><span class=\"std std-ref\">declaring form media assets</span></a>.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.0\">\n<p class=\"version-note-title\">Changed in Django 4.0</p><p>jQuery was upgraded from 3.5.1 to 3.6.0.</p>\n</aside>\n<p>Kelas <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> membutuhkan jQuery secara awalan, jadi tidak butuh menambahkan jQuery ke daftar <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> anda dari sumber daya media meskipun anda mempunyai kebutuhan khusus. Sebagai contoh, jika anda membutuhkan pustaka jQuery menjadi di namespace global (sebagai contoh ketika menggunakan plugin jQuery pihak-ketiga) atau jika anda butuh versi terbaru dari jQuery, anda akan harus menyertakan salinan anda sendiri.</p>\n<p>Django menyediakan kedua versi tidak dipadatkan dan 'dikecilkan' dari jQuery, sebagai masing-masing <code class=\"docutils literal notranslate\"><span class=\"pre\">jquery.js</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">jquery.min.js</span></code>.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> dan <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a> mempunyai sebuah sifat <code class=\"docutils literal notranslate\"><span class=\"pre\">media</span></code> yang mengembalikan sebuah daftar dari obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Media</span></code> yang menyimpan jalur pada berkas-berkas JavaScript untuk formulir dan/atau formset. Jika <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> itu akan mengembalikan versi tidak terpampat dari beragam berkas-berkas JavaScript, termasuk <code class=\"docutils literal notranslate\"><span class=\"pre\">jquery.js</span></code>; jika tidak, itu akan mengembalikan versi 'minified'.</p>\n</section>\n</section>\n<section id=\"adding-custom-validation-to-the-admin\">\n<span id=\"admin-custom-validation\"></span><h3>Menambahkan pengesahan penyesuaian pada admin<a class=\"heading-anchor\" href=\"#adding-custom-validation-to-the-admin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>You can also add custom validation of data in the admin. The automatic admin\ninterface reuses <a class=\"reference internal\" href=\"/id/4.1/ref/forms/api/#module-django.forms\" title=\"django.forms\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.forms</span></code></a>, and the <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> class gives you\nthe ability to define your own form:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">MyArticleAdminForm</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">MyArticleAdminForm</span></code> dapat ditentukan dimanapun selama anda mengimpor ketika diperlukan. Sekarang dalam formulir anda anda dapat menambah penyesuaian pengesahan milik anda sendiri untuk bidang apapun:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyArticleAdminForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">clean_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># do something that validates your data</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Itu adalah penting anda menggunakan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> disini sebaliknya hal-hal dapat rusak. Lihat dokuementasi <a class=\"reference internal\" href=\"/id/4.1/ref/forms/\"><span class=\"doc\">forms</span></a> pada <a class=\"reference internal\" href=\"/id/4.1/ref/forms/validation/\"><span class=\"doc\">custom validation</span></a> dan, lebih khusus, <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#overriding-modelform-clean-method\"><span class=\"std std-ref\">model form validation notes</span></a> untuk informasi lebih.</p>\n</section>\n</section>\n<section id=\"inlinemodeladmin-objects\">\n<span id=\"admin-inlines\"></span><h2>Obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code><a class=\"heading-anchor\" href=\"#inlinemodeladmin-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">InlineModelAdmin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.TabularInline\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TabularInline</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.TabularInline\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.StackedInline\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">StackedInline</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.StackedInline\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Antarmuka admin mempunyai kemampuan menyunting model-model pada halaman sama sebagai model induk. Ini adalah dipanggil berderet. Andaikan anda mempunyai kedua model ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Author</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n   <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Book</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n   <span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n   <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Anda dapat menyunting buku-buku ditulis oleh seorang penulis pada halaman penulis. Anda tambah berderet pada sebuah model dengan menentukan mereka di sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.inlines</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Book</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">BookInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>Django menyediakan dua subkelas dari <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> dan mereka adalah:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.TabularInline\" title=\"django.contrib.admin.TabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.StackedInline\" title=\"django.contrib.admin.StackedInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StackedInline</span></code></a></p></li>\n</ul>\n<p>Perbedaan diantara kedua ini adalah hanya cetakan digunakan untuk membangun mereka.</p>\n</dd></dl>\n\n<section id=\"inlinemodeladmin-options\">\n<h3>Pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code><a class=\"heading-anchor\" href=\"#inlinemodeladmin-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> berbagi banyak dari fitur-fitur sama seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>, dan menambahkan beberapa dari miliknya (fitur-fitur dibagi sebenarnya ditentukan di superkelas <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseModelAdmin</span></code>). Fitur-fitur dibagi adalah:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.form\" title=\"django.contrib.admin.InlineModelAdmin.form\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">form</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_overrides\" title=\"django.contrib.admin.ModelAdmin.formfield_overrides\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.exclude\" title=\"django.contrib.admin.ModelAdmin.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_horizontal\" title=\"django.contrib.admin.ModelAdmin.filter_horizontal\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_horizontal</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_vertical\" title=\"django.contrib.admin.ModelAdmin.filter_vertical\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_vertical</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ordering\" title=\"django.contrib.admin.ModelAdmin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.prepopulated_fields\" title=\"django.contrib.admin.ModelAdmin.prepopulated_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_fieldsets\" title=\"django.contrib.admin.ModelAdmin.get_fieldsets\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_fieldsets()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_queryset\" title=\"django.contrib.admin.ModelAdmin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.radio_fields\" title=\"django.contrib.admin.ModelAdmin.radio_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.raw_id_fields\" title=\"django.contrib.admin.InlineModelAdmin.raw_id_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_choice_field\" title=\"django.contrib.admin.ModelAdmin.formfield_for_choice_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">formfield_for_choice_field()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_foreignkey\" title=\"django.contrib.admin.ModelAdmin.formfield_for_foreignkey\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_manytomany\" title=\"django.contrib.admin.ModelAdmin.formfield_for_manytomany\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">formfield_for_manytomany()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_module_permission\" title=\"django.contrib.admin.ModelAdmin.has_module_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_module_permission()</span></code></a></p></li>\n</ul>\n<p>Kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> menambah atau menyesuaikan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">model</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Model yang di berderet sedang menggunakan. Ini adalah diwajibkan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.fk_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fk_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.fk_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Nama dari foreign key pada model. Di kebanyakan kasus ini akan ditangani dengan otomatis, tetapi <code class=\"docutils literal notranslate\"><span class=\"pre\">fk_name</span></code> harus ditentukan secara jelas jika ada lebih dari satu foreign key pada model induk yang sama.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formset</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini awalan pada <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet\" title=\"django.forms.models.BaseInlineFormSet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseInlineFormSet</span></code></a>. Menggunakan formset anda sendiri dapat memberikan anda banyak kemungkinan dari penyesuaian. Berderet  adalah dibangun sekitar <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#model-formsets\"><span class=\"std std-ref\">model formsets</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>NIlai untuk awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">form</span></code> pada <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>. Ini adalah apa yang dilewatkan melalui <a class=\"reference internal\" href=\"/id/4.1/ref/forms/models/#django.forms.models.inlineformset_factory\" title=\"django.forms.models.inlineformset_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">inlineformset_factory()</span></code></a> ketika membuat formset untuk berderet ini.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Ketika menulis pengesahan penyesuaian untuk formulir <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code>, waspada dari menulis pengesahan yang bergantung pada fitur-fitur dari model induk. Jika model induk gagal mensahkan, itu mungkin ditinggal di keadaan yang tidak konsisten seperti digambarkan di peringatan di <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#validation-on-modelform\"><span class=\"std std-ref\">Pengesahan pada sebuah ModelForm</span></a>.</p>\n</aside>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.classes\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">classes</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.classes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah daftar atau tuple mengandung kelas-kelas CSS tambahan pada fieldset yang dibangun untuk berderet. Awalan pada <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>. Ketika dengan kelas-kelas dikonfigurasikan di <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>, berderet dengan sebuah kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">collapse</span></code> akan diinisialisasikan diruntuhkan dan kepala mereka akan mempunyai tautan &quot;show&quot; kecil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.extra\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">extra</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.extra\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This controls the number of extra forms the formset will display in\naddition to the initial forms. Defaults to 3. See the\n<a class=\"reference internal\" href=\"/id/4.1/topics/forms/formsets/\"><span class=\"doc\">formsets documentation</span></a> for more\ninformation.</p>\n<p>Untuk pengguna dengan peramban diadakan-JavaScript, sebuah tautan &quot;Add another&quot; disediakan untuk mengadakan nomor apapun dari berderet tambahan untuk ditambahkan ke itu yang disediakan sebagai sebuah hasil dari argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">extra</span></code>.</p>\n<p>Tautan dinamis tidak akan muncul jika sejumlah dari formulir diperlihatkan saat ini melebihi <code class=\"docutils literal notranslate\"><span class=\"pre\">max_num</span></code>, atau jika pengguna tidak mempunyai JavaScript diadakan.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.get_extra\" title=\"django.contrib.admin.InlineModelAdmin.get_extra\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.get_extra()</span></code></a> juga mengizinkan anda menyesuaikan sejumlah formulir tambahan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.max_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">max_num</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.max_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini mengendalikan jumlah minimal dari formulir untuk menunjukkan di berderet. Ini tidak secara langsung menghubungankan ke sejumlah dari obyek, tetapi dapat jika nilai cukup kecil. Lihat <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#model-formsets-max-num\"><span class=\"std std-ref\">Membatasi angka dari obyek dapat di sunting</span></a> untuk informasi lebih.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.get_max_num\" title=\"django.contrib.admin.InlineModelAdmin.get_max_num\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.get_max_num()</span></code></a> juga mengizinkan anda menyesuaikan nomor maksimal dari formulir tambahan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.min_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">min_num</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.min_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini mengendalikan jumlah minimal dari formulir untuk menunjukkan dalam deretan. Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/forms/models/#django.forms.models.modelformset_factory\" title=\"django.forms.models.modelformset_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">modelformset_factory()</span></code></a> untuk informasi lebih.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.get_min_num\" title=\"django.contrib.admin.InlineModelAdmin.get_min_num\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.get_min_num()</span></code></a> juga mengizinkan anda menyesuaikan nomor minimal dari formulir ditampilkan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.raw_id_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">raw_id_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.raw_id_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan, admin Django menggunakan antarmuka kotak-pilih (&lt;select&gt;) untuk bidang-bidang adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>. Terkadang anda tidak ingin mendatangkan atas dari memiliki untuk memilih semua instance terkait untuk memperlihatkan di drop-down.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> adalah sebuah daftar dari bidang anda ingin rubah menjadi widget <code class=\"docutils literal notranslate\"><span class=\"pre\">input</span></code> untuk antara sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Book</span>\n    <span class=\"n\">raw_id_fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s2\">&quot;pages&quot;</span><span class=\"p\">,)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Cetakan digunakan untuk membangun berderet pada halaman.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.verbose_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">verbose_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An override to the <a class=\"reference internal\" href=\"/id/4.1/ref/models/options/#django.db.models.Options.verbose_name\" title=\"django.db.models.Options.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code></a> from the\nmodel's inner <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> class.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.verbose_name_plural\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">verbose_name_plural</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name_plural\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An override to the <a class=\"reference internal\" href=\"/id/4.1/ref/models/options/#django.db.models.Options.verbose_name_plural\" title=\"django.db.models.Options.verbose_name_plural\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name_plural</span></code></a>\nfrom the model's inner <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> class. If this isn't given and the\n<a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\" title=\"django.contrib.admin.InlineModelAdmin.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.verbose_name</span></code></a> is defined, Django will use\n<a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\" title=\"django.contrib.admin.InlineModelAdmin.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.verbose_name</span></code></a> + <code class=\"docutils literal notranslate\"><span class=\"pre\">'s'</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.0\">\n<p class=\"version-note-title\">Changed in Django 4.0</p><p>The fallback to <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\" title=\"django.contrib.admin.InlineModelAdmin.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.verbose_name</span></code></a> was added.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.can_delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">can_delete</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.can_delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menentukan apakah atau tidak obyek berderet dapat dihapus di berderet. Awalan menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.show_change_link\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">show_change_link</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.show_change_link\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menentukan apakah atau tidak obyek berderet dapat dirubah di admin mempunyai sebuah tautan ke formulir rubah. Awalan menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_formset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference internal\" href=\"/id/4.1/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet\" title=\"django.forms.models.BaseInlineFormSet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseInlineFormSet</span></code></a> class for use in\nadmin add/change views. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> is the parent object being edited or\n<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> when adding a new parent. See the example for\n<a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_formsets_with_inlines\" title=\"django.contrib.admin.ModelAdmin.get_formsets_with_inlines\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_formsets_with_inlines</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_extra\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_extra</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_extra\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan sejumlah formulir berderet tambahan untuk digunakan. Secara awalan, mengembalikan atribut <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.extra\" title=\"django.contrib.admin.InlineModelAdmin.extra\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.extra</span></code></a></p>\n<p>Timpa metode ini untuk secara program menentukan jumlah dari formulir berderet tambahan. Sebagai contoh, ini mungkin berdasarkan pada instance model (dilewatkan sebagai argumen kata kunci <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>):</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BinaryTreeAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">BinaryTree</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_extra</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">extra</span> <span class=\"o\">=</span> <span class=\"mi\">2</span>\n        <span class=\"k\">if</span> <span class=\"n\">obj</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">extra</span> <span class=\"o\">-</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">binarytree_set</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"n\">extra</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_max_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_max_num</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_max_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan jumlah maksimal dari formulir berderet tambahan untuk digunakan. Secara awalan, mengembalikan atribut <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.max_num\" title=\"django.contrib.admin.InlineModelAdmin.max_num\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.max_num</span></code></a>.</p>\n<p>Timpa metode ini untuk secara program menentukan jumlah maksimal dari formulir berderet tambahan. Sebagai contoh, ini mungkin berdasarkan pada instance model (dilewatkan sebagai argumen kata kunci <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>):</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BinaryTreeAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">BinaryTree</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_max_num</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">max_num</span> <span class=\"o\">=</span> <span class=\"mi\">10</span>\n        <span class=\"k\">if</span> <span class=\"n\">obj</span> <span class=\"ow\">and</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">parent</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">max_num</span> <span class=\"o\">-</span> <span class=\"mi\">5</span>\n        <span class=\"k\">return</span> <span class=\"n\">max_num</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_min_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_min_num</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_min_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan jumlah minimal dari formulir berderet untuk digunakan. Secara awalan, mengembalikan atribut <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.min_num\" title=\"django.contrib.admin.InlineModelAdmin.min_num\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.min_num</span></code></a>.</p>\n<p>Timpa metode ini untuk secara program menentukan jumlah minimal dari formulir berderet tambahan. Sebagai contoh, ini mungkin berdasarkan pada instance model (dilewatkan sebagai argumen kata kunci <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>):</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.has_add_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_add_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.has_add_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika menambahkan obyek dalam barisan diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> adalah obyek induk sedang disunting atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> ketika menambahkan induk baru.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.has_change_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_change_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.has_change_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika menyunting obyek dalam barisan diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> adalah obyek induk sedang disunting.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.has_delete_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_delete_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.has_delete_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Harus mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika menghapus obyek dalam barisan diizinkan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> sebaliknya. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> adalah obyek induk sedang disunting.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> argument passed to <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> methods is the parent\nobject being edited or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> when adding a new parent.</p>\n</aside>\n</section>\n<section id=\"working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model\">\n<h3>Bekerja dengan sebuah model dengan dua atau lebih foreign key pada model induk yang sama.<a class=\"heading-anchor\" href=\"#working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Itu terkadang memungkinkan memiliki lebih dari satu foreign key pada model yang sama. Ambil model ini sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Friendship</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">to_person</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span> <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;friends&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">from_person</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span> <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;from_friends&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda ingin memperlihatkan sebuah berderet pada halaman tambah/rubah admin <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> anda butuh secara jelas menentukan foreign key sejak itu tidak dapat melakukannya otomatis:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Friendship</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FriendshipInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Friendship</span>\n    <span class=\"n\">fk_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;to_person&quot;</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">FriendshipInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"working-with-many-to-many-models\">\n<h3>Bekerja dengan model banyak-ke-banyak<a class=\"heading-anchor\" href=\"#working-with-many-to-many-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>By default, admin widgets for many-to-many relations will be displayed\non whichever model contains the actual reference to the\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>. Depending on your <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>\ndefinition, each many-to-many field in your model will be represented by a\nstandard HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;</span></code>, a horizontal or vertical filter, or a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> widget. However, it is also possible to replace these\nwidgets with inlines.</p>\n<p>Misalkan kita memiliki model berikut:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Group</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n    <span class=\"n\">members</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s1\">&#39;groups&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda ingin memperlihatkan hubungan many-yo-many menggunakan sebuah berderet, anda dapat melakukan juga dengan menentukan sebuah obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> untuk hubungan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MembershipInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Group</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">through</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">MembershipInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GroupAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">MembershipInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n    <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;members&#39;</span><span class=\"p\">,)</span>\n</code></pre></div>\n<p>Ada dua fitur perlu dicatat di contoh ini.</p>\n<p>Pertama-tama - kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">MembershipInline</span></code> mengacu <code class=\"docutils literal notranslate\"><span class=\"pre\">Group.members.through</span></code>. Atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> adalah sebuah acuan pada model yang mengelola hubungan many-to-many. Model ini secara otomatis dibuat oleh Django ketika anda menentukan bidang many-to-many.</p>\n<p>Kedua, <code class=\"docutils literal notranslate\"><span class=\"pre\">GroupAdmin</span></code> harus secara manual mengeluarkan bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">members</span></code>. Django menampilkan sebuah widget admin untuk bidang many-to-many pada model yang menentukan hubungan (di kasus ini, <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code>). Jika anda ingin menggunakan sebuah model berderet untuk mewakili hubungan many-to-many, anda harus memberitahu admin Django <em>tidak</em> memperlihatkan widget ini - sebaliknya anda akan berakhir dengan dua widget pada halaman admin anda untuk mengelola hubungan.</p>\n<p>Catat bahwa ketika menggunakan teknik ini sinyal <a class=\"reference internal\" href=\"/id/4.1/ref/signals/#django.db.models.signals.m2m_changed\" title=\"django.db.models.signals.m2m_changed\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">m2m_changed</span></code></a> tidak dipicu. Ini adalah karena sejauh admin yang bersangkutan, <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> hanya sebuah model dengan dua bidang foreign key daripada hubungan many-to-many.</p>\n<p>Dalam semua hal lainnya, <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> persisnya sama seperti lainnya. Anda dapat menyesuaikan penampilan menggunakan apapun dari sifat-sifat <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> biasa.</p>\n</section>\n<section id=\"working-with-many-to-many-intermediary-models\">\n<h3>Bekerja dengan model perantara many-to-many<a class=\"heading-anchor\" href=\"#working-with-many-to-many-intermediary-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ketika anda menentukan sebuah model perantara menggunakan argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> pada sebuah <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>, admin tidak akan menampilkan sebuah widget secara awalan. Ini karena setiap instance dari model perantara membutuhkan lebih informasi dari dapat diperlihatkan dalam sebuah widget tunggal, dan tata letak dibutuhkan untuk widget banyak akan beragam bergantung pada model perantara.</p>\n<p>However, we still want to be able to edit that information inline. Fortunately,\nwe can do this with inline admin models. Suppose we have the following models:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Group</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n    <span class=\"n\">members</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">through</span><span class=\"o\">=</span><span class=\"s1\">&#39;Membership&#39;</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Membership</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">person</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">group</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Group</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">date_joined</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n    <span class=\"n\">invite_reason</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">64</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Langkah pertama dalam memperlihatkan model perantara ini di admin adalah menentukan sebuah kelas berderet untuk model <code class=\"docutils literal notranslate\"><span class=\"pre\">Membership</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MembershipInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Membership</span>\n    <span class=\"n\">extra</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>\n</code></pre></div>\n<p>This example uses the default <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> values for the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Membership</span></code> model, and limits the extra add forms to one. This could be\ncustomized using any of the options available to <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> classes.</p>\n<p>Sekarang membuat tampilan admin untuk model <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">MembershipInline</span><span class=\"p\">,)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GroupAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">MembershipInline</span><span class=\"p\">,)</span>\n</code></pre></div>\n<p>Akhirnya, daftar model <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code> dengan situs admin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">PersonAdmin</span><span class=\"p\">)</span>\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Group</span><span class=\"p\">,</span> <span class=\"n\">GroupAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Sekarang situs admin anda dipersiapkan untuk menyunting obyek-obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Membership</span></code> berderet dari antara <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code> di halaman rincian.</p>\n</section>\n<section id=\"using-generic-relations-as-an-inline\">\n<span id=\"id3\"></span><h3>Menggunakan hubungan umum sebagai sebuah berderet<a class=\"heading-anchor\" href=\"#using-generic-relations-as-an-inline\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Itu memungkinkan menggunakan sebuah berderet dengan umum obyek terkait. Mari kita katakan anda memiliki model-model berikut:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">GenericForeignKey</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Image</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">image</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ImageField</span><span class=\"p\">(</span><span class=\"n\">upload_to</span><span class=\"o\">=</span><span class=\"s2\">&quot;images&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">content_type</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">ContentType</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">object_id</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">PositiveIntegerField</span><span class=\"p\">()</span>\n    <span class=\"n\">content_object</span> <span class=\"o\">=</span> <span class=\"n\">GenericForeignKey</span><span class=\"p\">(</span><span class=\"s2\">&quot;content_type&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;object_id&quot;</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Product</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika anda ingin menyunting dan membuat sebuah instance <code class=\"docutils literal notranslate\"><span class=\"pre\">Image</span></code> pada <code class=\"docutils literal notranslate\"><span class=\"pre\">Product</span></code>, tampilan tambah/rubah anda dapat menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericTabularInline\" title=\"django.contrib.contenttypes.admin.GenericTabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericTabularInline</span></code></a> atau <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericStackedInline\" title=\"django.contrib.contenttypes.admin.GenericStackedInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericStackedInline</span></code></a> (kedua subkelas-subkelas dari <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericInlineModelAdmin\" title=\"django.contrib.contenttypes.admin.GenericInlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericInlineModelAdmin</span></code></a>) disediakan oleh <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/#module-django.contrib.contenttypes.admin\" title=\"django.contrib.contenttypes.admin\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">admin</span></code></a>. Mereka menerapkan tata letak penampakan datar dan bertumpuk untuk formulir mewakili obyek berderet, masing-masing, seperti pasangan bukan-umum mereka. Mereka berperilaku seperti berderet lainnya. Di <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.py</span></code> anda untuk contoh aplikasi ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.admin</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">GenericTabularInline</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Image</span><span class=\"p\">,</span> <span class=\"n\">Product</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ImageInline</span><span class=\"p\">(</span><span class=\"n\">GenericTabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Image</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ProductAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">ImageInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Product</span><span class=\"p\">,</span> <span class=\"n\">ProductAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/\"><span class=\"doc\">contenttypes documentation</span></a> untuk informasi lebih spesifik.</p>\n</section>\n</section>\n<section id=\"overriding-admin-templates\">\n<span id=\"admin-overriding-templates\"></span><h2>Menimpa cetakan admin<a class=\"heading-anchor\" href=\"#overriding-admin-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>You can override many of the templates which the admin module uses to generate\nthe various pages of an admin site. You can even override a few of these\ntemplates for a specific app, or a specific model.</p>\n<section id=\"set-up-your-projects-admin-template-directories\">\n<h3>Setel direktori cetakan admin proyek<a class=\"heading-anchor\" href=\"#set-up-your-projects-admin-template-directories\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Berkas-berkas cetakan admin ditempatkan di direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib/admin/templates/admin</span></code>.</p>\n<p>Untuk menimpa satu atau lebih mereka, pertama buat sebuah direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> dalam direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code> proyek anda. Ini dapat berupa apapun dari direktori anda tentukan dalam pilihan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-TEMPLATES-DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span></code></a> dari backend <code class=\"docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code> dalam pengaturan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>. Jika anda telah menyesuaikan pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">'loaders'</span></code>, pastikan <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.loaders.filesystem.Loader'</span></code> muncul sebelum <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.loaders.app_directories.Loader'</span></code> sehingga cetakan penyesuaian anda akan ditemukan oleh sistem pemuat cetakan sebelum mereka yang disertakan dengan <a class=\"reference internal\" href=\"#module-django.contrib.admin\" title=\"django.contrib.admin: Django's admin site.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code></a>.</p>\n<p>Dalam direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> ini, buat sub-direktori diberi nama setelah aplikasi anda. Dalam subdirektori aplikasi ini buat sub-direktori dinamai setelah model anda. Catat, bahwa aplikasi admin akan menghuruf kecilkan nama model ketika mencari direktori, jadi pastikan anda memberi nama direktori dalam semua huruf kecil jika anda akan menjalankan aplikasi anda pada sistem berkas kasus-sensitif.</p>\n<p>Untuk menimpa sebuah cetakan admin untuk aplikasi tertentu, salin dan sunting cetakan dari direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">django/contrib/admin/templates/admin</span></code>, dan simpan itu ke satu dari direktori anda baru buat.</p>\n<p>Sebagai contoh, jika kami ingin menambah sebuah alat pada tampilan daftar rubah untuk semua model-model dalam sebuah aplikasi bernama <code class=\"docutils literal notranslate\"><span class=\"pre\">my_app</span></code>, kami akan menyalin <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib/admin/templates/admin/change_list.html</span></code> ke direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/my_app/</span></code> dari proyek kami, dan membuat apapun perubahan dibutuhkan.</p>\n<p>Jika kami ingin menambah sebuah alat pada tampilan daftar rubah untuk hanya model tertentu bernama 'Page', kami akan menyalin berkas sama itu ke direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/my_app/page</span></code> dari proyek kami.</p>\n</section>\n<section id=\"overriding-vs-replacing-an-admin-template\">\n<h3>Menimpa lawan mengganti cetakan admin<a class=\"heading-anchor\" href=\"#overriding-vs-replacing-an-admin-template\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Karena rancangan modular dari cetakan-cetakan admin, itu biasanya tidak perlu dan tidak dianjurkan untuk mengganti keseluruhan cetakan. Itu adalah hampir selalu lebih baik menimpa hanya bagian dari cetakan yang anda butuh dirubah.</p>\n<p>Untuk melanjutkan contoh diatas, kami ingin menambah sebuah tautan baru dekat pada alat <code class=\"docutils literal notranslate\"><span class=\"pre\">History</span></code> untuk model <code class=\"docutils literal notranslate\"><span class=\"pre\">Page</span></code>. Setelah mencari di <code class=\"docutils literal notranslate\"><span class=\"pre\">change_form.html</span></code> kami menentukan bahwa kami hanya butuh menimpa blok <code class=\"docutils literal notranslate\"><span class=\"pre\">object-tools-items</span></code>, Oleh karena itu disini adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">change_form.html</span></code> baru kami :</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;admin/change_form.html&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">i18n</span> <span class=\"nv\">admin_urls</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">object-tools-items</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"nv\">opts</span><span class=\"o\">|</span><span class=\"nf\">admin_urlname</span><span class=\"s1\">:&#39;history&#39;</span> <span class=\"nv\">original.pk</span><span class=\"o\">|</span><span class=\"nf\">admin_urlquote</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;historylink&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">translate</span> <span class=\"s2\">&quot;History&quot;</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;mylink/&quot;</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;historylink&quot;</span><span class=\"p\">&gt;</span>My Link<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">has_absolute_url</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n            <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;admin:view_on_site&#39;</span> <span class=\"nv\">content_type_id</span> <span class=\"nv\">original.pk</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;viewsitelink&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">translate</span> <span class=\"s2\">&quot;View on site&quot;</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Dan itu dia! Jika kami menempatkan berkas ini di direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/my_app</span></code>, tautan kami akan muncul pada formulir rubah untuk semua model dalam my_app.</p>\n</section>\n<section id=\"templates-which-may-be-overridden-per-app-or-model\">\n<span id=\"admin-templates-overridden-per-app-or-model\"></span><h3>Cetakan-cetakan yang mungkin menimpa per aplikasi atau model<a class=\"heading-anchor\" href=\"#templates-which-may-be-overridden-per-app-or-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tidak setiap cetakan di <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib/admin/templates/admin</span></code> mungkin ditimpa per aplikasi atau per model. Berikut dapat:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">actions.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_index.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">change_form.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">change_form_object_tools.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">change_list.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">change_list_object_tools.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">change_list_results.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">delete_confirmation.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_history.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">pagination.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">popup_response.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields_js.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">search_form.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">submit_line.html</span></code></p></li>\n</ul>\n<p>For those templates that cannot be overridden in this way, you may still\noverride them for your entire project by placing the new version in your\n<code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin</span></code> directory. This is particularly useful to create custom 404\nand 500 pages.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Beberapa dari cetakan-cetakan admin, seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">change_list_results.html</span></code> digunakan untuk membangun etiket penyertaaan penyesuaian. Ini mungkin ditimpa, tetapi dalam kasus-kasus seprti itu anda mungkin lebih baik membuat versi anda sendiri dari etiket dalam pertanyaan dan memberikan itu sebuah nama berbeda. Cara itu anda dapat menggunakannya selektif.</p>\n</aside>\n</section>\n<section id=\"root-and-login-templates\">\n<h3>Cetakan akar dan masuk<a class=\"heading-anchor\" href=\"#root-and-login-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Jika anda berharap merubah cetakan indeks, masuk atau keluar, anda lebih baik membuat instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> anda sendiri (lihat dibawah), dan merubah sifat-sifat <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.index_template\" title=\"django.contrib.admin.AdminSite.index_template\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.index_template</span></code></a> , <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.login_template\" title=\"django.contrib.admin.AdminSite.login_template\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.login_template</span></code></a> atau <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.logout_template\" title=\"django.contrib.admin.AdminSite.logout_template\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.logout_template</span></code></a>.</p>\n</section>\n</section>\n<section id=\"theming-support\">\n<span id=\"admin-theming\"></span><h2>Theming support<a class=\"heading-anchor\" href=\"#theming-support\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>The admin uses CSS variables to define colors. This allows changing colors\nwithout having to override many individual CSS rules. For example, if you\npreferred purple instead of blue you could add a <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base.html</span></code> template\noverride to your project:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s1\">&#39;admin/base.html&#39;</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">extrastyle</span> <span class=\"cp\">%}{{</span> <span class=\"nb\">block</span><span class=\"nv\">.super</span> <span class=\"cp\">}}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">style</span><span class=\"p\">&gt;</span>\n<span class=\"p\">:</span><span class=\"nd\">root</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">  </span><span class=\"nv\">--primary</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#9774d5</span><span class=\"p\">;</span>\n<span class=\"w\">  </span><span class=\"nv\">--secondary</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#785cab</span><span class=\"p\">;</span>\n<span class=\"w\">  </span><span class=\"nv\">--link-fg</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#7c449b</span><span class=\"p\">;</span>\n<span class=\"w\">  </span><span class=\"nv\">--link-selected-fg</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#8f5bb2</span><span class=\"p\">;</span>\n<span class=\"p\">}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">style</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>The list of CSS variables are defined at\n<code class=\"file docutils literal notranslate\"><span class=\"pre\">django/contrib/admin/static/admin/css/base.css</span></code>.</p>\n<p>Dark mode variables, respecting the <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/&#64;media/prefers-color-scheme\">prefers-color-scheme</a> media query, are\ndefined at <code class=\"file docutils literal notranslate\"><span class=\"pre\">django/contrib/admin/static/admin/css/dark_mode.css</span></code>. This is\nlinked to the document in <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">block</span> <span class=\"pre\">dark-mode-vars</span> <span class=\"pre\">%}</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>The dark mode variables were moved to a separate stylesheet and template\nblock.</p>\n</aside>\n</section>\n<section id=\"adminsite-objects\">\n<h2>Obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AdminSite</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'admin'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah situs administratif Django diwakili oleh sebuah instance dari <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.sites.AdminSite</span></code>; secara awalan, sebuah instance dari kelas ini dibuat sebagai <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.site</span></code> dan anda dapat mendaftar model-model anda dan instance-instance <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> dengan itu.</p>\n<p>Jika anda ingin menyesuaikan situs admin awalan, anda dapat :ref:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>override it <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Ketika mendirikan sebuah instance dari sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>, anda dapat menyediakan sebuah nama instance unik menggunakan argumen <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> pada pembangun. Nama instance ini digunakan untuk mencirikan instance, khususnya ketika <a class=\"reference internal\" href=\"#admin-reverse-urls\"><span class=\"std std-ref\">reversing admin URLs</span></a>. Jika tidak ada nama instance disediakan, sebuah nama instace awalan dari <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> akan digunakan. Lihat <a class=\"reference internal\" href=\"#customizing-adminsite\"><span class=\"std std-ref\">Menyesuaikan kelas AdminSite.</span></a> untuk sebuah contoh dari menyesuaikan kelas <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a>.</p>\n</dd></dl>\n\n<section id=\"adminsite-attributes\">\n<h3>Atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cetakan dapat dikesampingkan atau diperpanjang berdasarkan cetakan admin seperti digambarkan di <a class=\"reference internal\" href=\"#admin-overriding-templates\"><span class=\"std std-ref\">Menimpa cetakan admin</span></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.site_header\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site_header</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.site_header\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Teks untuk ditaruh di atas dari setiap halaman index admin, sebagai sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;h1&gt;</span></code> (sebuah string). Secara awalan, ini adalah &quot;Administrasi Django&quot;.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.site_title\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site_title</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.site_title\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Teks untuk ditaruh pada akhir dari setiap <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;title&gt;</span></code> halaman admin (sebuah string). Secara awalan, ini adalah &quot;Situs admin Django&quot;.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.site_url\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site_url</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.site_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>URL untuk tautan &quot;View site&quot; pada atas dari setiap halaman admin. Secara awalan, <code class=\"docutils literal notranslate\"><span class=\"pre\">site_url</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code>. Setel itu menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> untuk memindahkan tautan</p>\n<p>Untuk situs-situs berjalan pada subjalur, metode <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.each_context\" title=\"django.contrib.admin.AdminSite.each_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">each_context()</span></code></a> memeriksa jika permintaan saat ini mempunyai kumpulan <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META['SCRIPT_NAME']</span></code> dan menggunakan nilai itu jika <code class=\"docutils literal notranslate\"><span class=\"pre\">site_url``tidak</span> <span class=\"pre\">menyetel</span> <span class=\"pre\">ke</span> <span class=\"pre\">sesuatu</span> <span class=\"pre\">selain</span> <span class=\"pre\">dari</span> <span class=\"pre\">``/</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.index_title\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">index_title</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.index_title\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Teks untuk ditaruh di atas dari halaman index admin (deretan karakter). Secara awalan, ini adalah &quot;Administrasi Situs&quot;.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.index_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">index_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.index_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian yang akan digunakan oleh tampilan indeks utama situs admin.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.app_index_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">app_index_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.app_index_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian yang akan digunakan oleh tampilan indeks aplikasi situs admin.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.empty_value_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">empty_value_display</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.empty_value_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Deretan karakter yang digunakan untuk menampilkan nilai kosong di daftar perubahan situs admin. Awalan pada sebuah garis. Nilai dapat juga ditimpa pada dasar per <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> dan pada bidang penyesuaian dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> dengan mengatur sebuah atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code> pada bidang. Lihat <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\" title=\"django.contrib.admin.ModelAdmin.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.empty_value_display</span></code></a> sebagai contoh.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.enable_nav_sidebar\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">enable_nav_sidebar</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.enable_nav_sidebar\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A boolean value that determines whether to show the navigation sidebar\non larger screens. By default, it is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.final_catch_all_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">final_catch_all_view</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.final_catch_all_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A boolean value that determines whether to add a final catch-all view to\nthe admin that redirects unauthenticated users to the login page. By\ndefault, it is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Setting this to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> is not recommended as the view protects\nagainst a potential model enumeration privacy issue.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.login_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">login_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.login_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian yang akan digunakan oleh tampilan masuk situs admin.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.login_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">login_form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.login_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Subkelas dari <a class=\"reference internal\" href=\"/id/4.1/topics/auth/default/#django.contrib.auth.forms.AuthenticationForm\" title=\"django.contrib.auth.forms.AuthenticationForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationForm</span></code></a> yang akan digunakan oleh tampilan masuk situs admin.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.logout_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">logout_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.logout_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian yang akan digunakan oleh tampilan keluar situs admin.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.password_change_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">password_change_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.password_change_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian yang akan digunakan oleh tampilan merubah sandi situs admin.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.password_change_done_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">password_change_done_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.password_change_done_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jalur pada cetakan penyesuaian yang akan digunakan oleh tampilan selesai merubah sandi situs admin.</p>\n</dd></dl>\n\n</section>\n<section id=\"adminsite-methods\">\n<h3>Cara <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.each_context\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">each_context</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.each_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Dikembalikan sebuah kamus dari variabel-variabel untuk menaruh di konteks cetakan untuk setiap halaman di situs admin.</p>\n<p>Menyertakan variabel-variabel berikut dan nilai-nilai secara awalan:</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_header</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.site_header\" title=\"django.contrib.admin.AdminSite.site_header\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.site_header</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_title</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.site_title\" title=\"django.contrib.admin.AdminSite.site_title\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.site_title</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_url</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.site_url\" title=\"django.contrib.admin.AdminSite.site_url\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.site_url</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_permission</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.has_permission\" title=\"django.contrib.admin.AdminSite.has_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">AdminSite.has_permission()</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">available_apps</span></code>: sebuah daftar aplikasi dari <a class=\"reference internal\" href=\"/id/4.1/ref/applications/\"><span class=\"doc\">application registry</span></a> tersedia untuk pengguna saat ini. Setiap masukan dalam daftar adalah sebuah kamus mewakili sebuah aplikasi dengan kunci berikut:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code>: label aplikasi</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_url</span></code>: URL dari indeks aplikasi di admin</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_module_perms</span></code>: sebuah boolean mengindikasikan jika menampilkan dan mengakses dari halaman indeks modul diizinkan untuk pengguna saat ini</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>: sebuah daftar dari model tersedia di aplikasi</p></li>\n</ul>\n<p>Setiap model adalah kamus dengan kunci-kunci berikut:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>: the model class</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_name</span></code>: nama kelas dari model</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>: nama jamak dari model</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">perms</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> melacak perizinan <code class=\"docutils literal notranslate\"><span class=\"pre\">add</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">change</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">delete</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">admin_url</span></code>: URL daftar rubah admin untuk model</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">add_url</span></code>: URL admin untuk menambah instance model baru</p></li>\n</ul>\n</li>\n</ul>\n<aside class=\"version-note version-changed\" data-version=\"4.0\">\n<p class=\"version-note-title\">Changed in Django 4.0</p><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code> variable for each model was added.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.get_app_list\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_app_list</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">app_label</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.get_app_list\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a list of applications from the <a class=\"reference internal\" href=\"/id/4.1/ref/applications/\"><span class=\"doc\">application registry</span></a> available for the current user. You can optionally\npass an <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code> argument to get details for a single app. Each entry\nin the list is a dictionary representing an application with the following\nkeys:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code>: label aplikasi</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_url</span></code>: URL dari indeks aplikasi di admin</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_module_perms</span></code>: sebuah boolean mengindikasikan jika menampilkan dan mengakses dari halaman indeks modul diizinkan untuk pengguna saat ini</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>: sebuah daftar dari model tersedia di aplikasi</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>: name of the application</p></li>\n</ul>\n<p>Each model is a dictionary with the following keys:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>: the model class</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_name</span></code>: nama kelas dari model</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>: nama jamak dari model</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">perms</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> melacak perizinan <code class=\"docutils literal notranslate\"><span class=\"pre\">add</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">change</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">delete</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">admin_url</span></code>: URL daftar rubah admin untuk model</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">add_url</span></code>: URL admin untuk menambah instance model baru</p></li>\n</ul>\n<p>Lists of applications and models are sorted alphabetically by their names.\nYou can override this method to change the default order on the admin index\npage.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code> argument was added.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.has_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.has_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika pengguna untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> yang diberikan mempunyai perizinan untuk melihat setidaknya satu halaman dalam situs admin. Awalan mewajibkan kedua <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/auth/#django.contrib.auth.models.User.is_active\" title=\"django.contrib.auth.models.User.is_active\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">User.is_active</span></code></a> dan <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">User.is_staff</span></code></a> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.register\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">register</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_or_iterable</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">admin_class</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.register\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mendaftarkan kelas model yang diberikan (atau kelas-kelas berulang) dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_class</span></code> yang diberikan. Awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_class</span></code> pada <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> (pilihan admin awalan). Jika argumen kata kunci diberikan -- misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> -- mereka akan diberlakukan sebagai pilihan pada kelas admin.</p>\n<p>Memunculkan <a class=\"reference internal\" href=\"/id/4.1/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></code></a> jika sebuah model adalah abstrak, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.sites.AlreadyRegistered</span></code> jika sebuah model sudah terdaftar.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.unregister\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">unregister</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_or_iterable</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.unregister\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Unregisters the given model class (or iterable of classes).</p>\n<p>Raises <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.sites.NotRegistered</span></code> if a model isn't\nalready registered.</p>\n</dd></dl>\n\n</section>\n<section id=\"hooking-adminsite-instances-into-your-urlconf\">\n<span id=\"hooking-adminsite-to-urlconf\"></span><h3>Mengkaitkan instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> kedalam URLconf anda<a class=\"heading-anchor\" href=\"#hooking-adminsite-instances-into-your-urlconf\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Langkah terakhir untuk mengatur admin Django adalah mengkaitkan instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> anda kedalam URLconf anda. Lakukan ini dengan menunjuk sebuah URL yang diberikan pada metode <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.urls</span></code>. Itu tidak diperlukan, menggunakan <a class=\"reference internal\" href=\"/id/4.1/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a>.</p>\n<p>Di contoh ini, kami mendaftarkan instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.site</span></code> pada URL <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/</span></code></p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># urls.py</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;admin/&#39;</span><span class=\"p\">,</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"customizing-the-adminsite-class\">\n<span id=\"customizing-adminsite\"></span><h3>Menyesuaikan kelas <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>.<a class=\"heading-anchor\" href=\"#customizing-the-adminsite-class\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>If you'd like to set up your own admin site with custom behavior, you're free\nto subclass <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> and override or add anything you like. Then, create\nan instance of your <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> subclass (the same way you'd instantiate any\nother Python class) and register your models and <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> subclasses with\nit instead of with the default site. Finally, update <code class=\"file docutils literal notranslate\"><span class=\"pre\">myproject/urls.py</span></code>\nto reference your <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> subclass.</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/admin.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MyModel</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminSite</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">AdminSite</span><span class=\"p\">):</span>\n    <span class=\"n\">site_header</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;Monty Python administration&#39;</span>\n\n<span class=\"n\">admin_site</span> <span class=\"o\">=</span> <span class=\"n\">MyAdminSite</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;myadmin&#39;</span><span class=\"p\">)</span>\n<span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"p\">)</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/urls.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.admin</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin_site</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;myadmin/&#39;</span><span class=\"p\">,</span> <span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p>Catat bahwa anda tidak mungkin ingin penemuan otomatis dari modul-modul <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> ketika menggunakan instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> anda sendiri sejak anda akan mengimpor semua per-aplikasi modul-modul <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> dalam modul <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.admin</span></code> anda. Ini berarti anda butuh menaruh <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin.apps.SimpleAdminConfig'</span></code> daripada <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> dalam pengaturan <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> anda.</p>\n</section>\n<section id=\"overriding-the-default-admin-site\">\n<span id=\"overriding-default-admin-site\"></span><h3>Menimpa situs admin awalan<a class=\"heading-anchor\" href=\"#overriding-the-default-admin-site\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Anda dapat menimpa <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.site</span></code> awalan dengan mengatur atribut <a class=\"reference internal\" href=\"#django.contrib.admin.apps.SimpleAdminConfig.default_site\" title=\"django.contrib.admin.apps.SimpleAdminConfig.default_site\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">default_site</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code> penyesuaian pada jalur impor bertitik dari salah satu subkelas <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> atau callable yang mengembalikan sebuah instance situs.</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/admin.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminSite</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">AdminSite</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/apps.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.admin.apps</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">AdminConfig</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminConfig</span><span class=\"p\">(</span><span class=\"n\">AdminConfig</span><span class=\"p\">):</span>\n    <span class=\"n\">default_site</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;myproject.admin.MyAdminSite&#39;</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/settings.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"n\">INSTALLED_APPS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"o\">...</span>\n    <span class=\"s1\">&#39;myproject.apps.MyAdminConfig&#39;</span><span class=\"p\">,</span>  <span class=\"c1\"># replaces &#39;django.contrib.admin&#39;</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n</section>\n<section id=\"multiple-admin-sites-in-the-same-urlconf\">\n<span id=\"multiple-admin-sites\"></span><h3>Banyak situs admin di URLconf yang sama<a class=\"heading-anchor\" href=\"#multiple-admin-sites-in-the-same-urlconf\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>You can create multiple instances of the admin site on the same Django-powered\nwebsite. Create multiple instances of <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> and place each one at a\ndifferent URL.</p>\n<p>Dalam contoh ini, URL fitur <code class=\"docutils literal notranslate\"><span class=\"pre\">/basic-admin/</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">/advanced-admin/</span></code> versi terpisah dari situs admin -- menggunakan instance-instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.admin.basic_site</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.admin.advanced_site</span></code>, masing-masing:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># urls.py</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myproject.admin</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">advanced_site</span><span class=\"p\">,</span> <span class=\"n\">basic_site</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;basic-admin/&#39;</span><span class=\"p\">,</span> <span class=\"n\">basic_site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;advanced-admin/&#39;</span><span class=\"p\">,</span> <span class=\"n\">advanced_site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Instance <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> mengambil argumen tunggal pada pembangun mereka, nama mereka, yang dapat apapun anda suka. Argumen ini menjadi awalan pada nama-nama URL untuk tujuan dari <a class=\"reference internal\" href=\"#admin-reverse-urls\"><span class=\"std std-ref\">reversing them</span></a>. Ini hanya dibutuhkan jika anda sedang menggunakan lebih dari satu <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>.</p>\n</section>\n<section id=\"adding-views-to-admin-sites\">\n<h3>Menambahkan tampilan ke situs admin<a class=\"heading-anchor\" href=\"#adding-views-to-admin-sites\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Seperti <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> menyediakan sebuah metode <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_urls\" title=\"django.contrib.admin.ModelAdmin.get_urls\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_urls()</span></code></a> yang dapat ditimpa untuk menentukan tambahan tampilan untuk situs. Untuk menambah sebuah tampilan baru ke situs admin anda, perpanjang metode <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_urls\" title=\"django.contrib.admin.ModelAdmin.get_urls\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_urls()</span></code></a> dasar untuk menyertakan sebuah pola untuk tampilan baru anda.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Tampian apapun anda bangun yang menggunakan cetakan admin, atau perpankang cetakan admin dasar, harus menyetel <code class=\"docutils literal notranslate\"><span class=\"pre\">request.current_app</span></code> sebelum membangun cetakan. Itu harus disetel antara <code class=\"docutils literal notranslate\"><span class=\"pre\">self.name</span></code> jika tampilan anda pada sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">self.admin_site.name</span></code> jika tampilan anda pada sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>.</p>\n</aside>\n</section>\n<section id=\"adding-a-password-reset-feature\">\n<span id=\"auth-password-reset\"></span><h3>Menambahkan fitur penyetelan kembali sandi<a class=\"heading-anchor\" href=\"#adding-a-password-reset-feature\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Anda dapat menambah sebuah fitur penyetelan kembali sandi pada situs admin dengan menambahkan beberapa baris pada URLconf anda. Khususnya, tambah tambahkan empat pola ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span> <span class=\"k\">as</span> <span class=\"n\">auth_views</span>\n\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s1\">&#39;admin/password_reset/&#39;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;admin_password_reset&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s1\">&#39;admin/password_reset/done/&#39;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetDoneView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;password_reset_done&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s1\">&#39;reset/&lt;uidb64&gt;/&lt;token&gt;/&#39;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetConfirmView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;password_reset_confirm&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s1\">&#39;reset/done/&#39;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetCompleteView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;password_reset_complete&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n</code></pre></div>\n<p>(Ini menganggap anda telah menambahkan admin pada <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/</span></code> dan diwajibkan bahwa anda menaruh URL dimulai dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">^admin/</span></code> sebelum baris yang menyertakan aplikasi admin itu sendiri).</p>\n<p>Kehadiran dari URL bernama <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_password_reset</span></code> akan menyebabkan sebuah tautan &quot;forgotten your password?&quot; muncul pada halaman masuk admin awalan dibawah kotak sandi.</p>\n</section>\n</section>\n<section id=\"logentry-objects\">\n<h2>Obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code><a class=\"heading-anchor\" href=\"#logentry-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">models.</span></span><span class=\"sig-name descname\"><span class=\"pre\">LogEntry</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code> melacak penambahan, perubahan, penghapusan dari obyek melalui antarmuka admin.</p>\n</dd></dl>\n\n<section id=\"logentry-attributes\">\n<h3>Atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code><a class=\"heading-anchor\" href=\"#logentry-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.action_time\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">action_time</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.action_time\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tanggal dan waktu dari tindakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.user\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">user</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.user\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Pengguna (sebuah instance  <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code></a>) yang melakukan tindakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.content_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">content_type</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.content_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/contenttypes/#django.contrib.contenttypes.models.ContentType\" title=\"django.contrib.contenttypes.models.ContentType\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ContentType</span></code></a> dari obyek dirubah.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.object_id\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">object_id</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.object_id\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Perwakilan tekstual dari primary key obyek yang telah dirubah.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.object_repr\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">object_repr</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.object_repr\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">repr()</span></code> obyek setelah perubahan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.action_flag\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">action_flag</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.action_flag\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jenis dari tindakan dicatat: <code class=\"docutils literal notranslate\"><span class=\"pre\">ADDITION</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">CHANGE</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">DELETION</span></code>.</p>\n<p>Sebagai contoh, untuk mendapatkan daftar dari semua tambahan selesai melalui admin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.admin.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ADDITION</span><span class=\"p\">,</span> <span class=\"n\">LogEntry</span>\n\n<span class=\"n\">LogEntry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">action_flag</span><span class=\"o\">=</span><span class=\"n\">ADDITION</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.change_message\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_message</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.change_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Gambaran rincian dari perubahan. Dalam kasus sebuah penyuntingan, sebagai contoh, pesan mengandung daftar dari bidang-bidang terseunting. Situs admin Django membentuk isi ini sebagai struktur JSON, sehingga <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry.get_change_message\" title=\"django.contrib.admin.models.LogEntry.get_change_message\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_change_message()</span></code></a> mengubah komposisi sebuah pesan diterjemahkan dalam bahasa pengguna saat ini. Penyesuaian kode mungkin menyetel ini sebagai string polos. Anda disarankan menggunakan metode <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry.get_change_message\" title=\"django.contrib.admin.models.LogEntry.get_change_message\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_change_message()</span></code></a> untuk mengambil nilai ini daripada mengakses itu langsung.</p>\n</dd></dl>\n\n</section>\n<section id=\"logentry-methods\">\n<h3>Cara <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code><a class=\"heading-anchor\" href=\"#logentry-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.get_edited_object\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_edited_object</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.get_edited_object\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah jalan pintas yang mengembalikan obyek diacukan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.get_change_message\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_change_message</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.get_change_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bentuk dan terjemahkan <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry.change_message\" title=\"django.contrib.admin.models.LogEntry.change_message\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">change_message</span></code></a> kedalam bahasa pengguna saat ini. Pesan-pesan dibuat sebelum Django 1.10 akan selalu diperlihatkan dalam bahasa yang mereka telah masuk.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"reversing-admin-urls\">\n<span id=\"admin-reverse-urls\"></span><h2>Membalikkan URL admin<a class=\"heading-anchor\" href=\"#reversing-admin-urls\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ketika <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> disebarkan, tampilan disediakan oleh situs itu dapat diakses menggunakan <a class=\"reference internal\" href=\"/id/4.1/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">URL reversing system</span></a> Django.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> menyediakan corak URL bernama berikut:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Halaman</p></th>\n<th class=\"head\"><p>Nama URL</p></th>\n<th class=\"head\"><p>Parameter</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>Indeks</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">indeks</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Masuk</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">login</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Keluar</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">keluar</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Ubah sandi</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">password_change</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Merubah sandi selesai</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">password_change_done</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>i18n JavaScript</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">jsi18n</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Halaman indeks aplikasi</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_list</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Pengalihan ke halaman obyek</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">content_type_id</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">object_id</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Setiap instance <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> menyediakan sebuah tambahan sekumpulan dari URL bernama:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Halaman</p></th>\n<th class=\"head\"><p>Nama URL</p></th>\n<th class=\"head\"><p>Parameter</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>Daftar rubah</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_changelist</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Tambah</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_add</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Riwayat</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_history</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_id</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Hapus</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_delete</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_id</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>Ubah</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_change</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_id</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">UserAdmin</span></code> menyediakan sebuah URL bernama:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Halaman</p></th>\n<th class=\"head\"><p>Nama URL</p></th>\n<th class=\"head\"><p>Parameter</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>Ubah sandi</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">auth_user_password_change</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">user_id</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>URL bernama ini didaftarkan dengan namespace aplikasi <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>, dan dengan sebuah namespace instance berhubungan pada nama dari instance Site.</p>\n<p>Jadi - jika anda ingin mendapatkan acuan pada tampilan Change untuk obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code> tertentu (dari aplikasi jejak pendapat) dalam admin awalan, anda akan memanggil:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">c</span> <span class=\"o\">=</span> <span class=\"n\">Choice</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">change_url</span> <span class=\"o\">=</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;admin:polls_choice_change&#39;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"o\">.</span><span class=\"n\">id</span><span class=\"p\">,))</span>\n</code></pre></div>\n<p>Ini akan menemukan instance terdaftar pertama dari aplikasi admin (apapun nama instance), dan memutuskan untuk tampilan untuk merubah instance <code class=\"docutils literal notranslate\"><span class=\"pre\">poll.Choice</span></code> dalam instance itu.</p>\n<p>Jika anda inginmenemukan sebuah URL dalam instance admin tertentu, sediakan nama dari instance itu sebagai sebuah petunjuk <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> untuk membalikkan panggilan. Sebagai contoh, jika anda khususnya ingin tampilan admin dari instance admin bernama <code class=\"docutils literal notranslate\"><span class=\"pre\">custom</span></code>, anda akan butuh memanggil:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">change_url</span> <span class=\"o\">=</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;admin:polls_choice_change&#39;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"o\">.</span><span class=\"n\">id</span><span class=\"p\">,),</span> <span class=\"n\">current_app</span><span class=\"o\">=</span><span class=\"s1\">&#39;custom&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Untuk rincian lebih, lihat dokumentasi pada <a class=\"reference internal\" href=\"/id/4.1/topics/http/urls/#topics-http-reversing-url-namespaces\"><span class=\"std std-ref\">reversing namespaced URLs</span></a>.</p>\n<p>Untuk mengizinkan membalikan paling mudah dari url-url admin dalam cetakan, Django menyediakan penyaring <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_urlname</span></code> yang mengambil sebuah tindakan sebagai argumen:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">admin_urls</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"nv\">opts</span><span class=\"o\">|</span><span class=\"nf\">admin_urlname</span><span class=\"s1\">:&#39;add&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Add user<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"nv\">opts</span><span class=\"o\">|</span><span class=\"nf\">admin_urlname</span><span class=\"s1\">:&#39;delete&#39;</span> <span class=\"nv\">user.pk</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Delete this user<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Tindakan dalam contoh-contoh diatas mencocokan bagian terakhir dari nama-nama URL untuk instance-instance <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> digambarkan diatas. Variabel 11opts`` dapat berupa obyek-obyek apapun yang mempunyai sebuah atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code> dan biasanya dipasok oleh tampilan-tampilan admin untuk model saat ini.</p>\n</section>\n<section id=\"the-display-decorator\">\n<h2>The <code class=\"docutils literal notranslate\"><span class=\"pre\">display</span></code> decorator<a class=\"heading-anchor\" href=\"#the-display-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.display\">\n<span class=\"sig-name descname\"><span class=\"pre\">display</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">boolean</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">ordering</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">description</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">empty_value</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This decorator can be used for setting specific attributes on custom\ndisplay functions that can be used with\n<a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a> or\n<a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span>\n    <span class=\"n\">boolean</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s1\">&#39;-publish_date&#39;</span><span class=\"p\">,</span>\n    <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Is Published?&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">is_published</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">publish_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n</code></pre></div>\n<p>This is equivalent to setting some attributes (with the original, longer\nnames) on the function directly:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">is_published</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">publish_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n<span class=\"n\">is_published</span><span class=\"o\">.</span><span class=\"n\">boolean</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"n\">is_published</span><span class=\"o\">.</span><span class=\"n\">admin_order_field</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;-publish_date&#39;</span>\n<span class=\"n\">is_published</span><span class=\"o\">.</span><span class=\"n\">short_description</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;Is Published?&#39;</span>\n</code></pre></div>\n<p>Also note that the <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> decorator parameter maps to the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code> attribute assigned directly to the function. It\ncannot be used in conjunction with <code class=\"docutils literal notranslate\"><span class=\"pre\">boolean</span></code> -- they are mutually\nexclusive.</p>\n<p>Use of this decorator is not compulsory to make a display function, but it\ncan be useful to use it without arguments as a marker in your source to\nidentify the purpose of the function:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">published_year</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">publish_date</span><span class=\"o\">.</span><span class=\"n\">year</span>\n</code></pre></div>\n<p>In this case it will add no attributes to the function.</p>\n</dd></dl>\n\n</section>\n<section id=\"the-staff-member-required-decorator\">\n<h2>Penghias <code class=\"docutils literal notranslate\"><span class=\"pre\">staff_member_required</span></code><a class=\"heading-anchor\" href=\"#the-staff-member-required-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.views.decorators.staff_member_required\">\n<span class=\"sig-name descname\"><span class=\"pre\">staff_member_required</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">redirect_field_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'next'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'admin:login'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.views.decorators.staff_member_required\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This decorator is used on the admin views that require authorization. A\nview decorated with this function will have the following behavior:</p>\n<ul class=\"simple\">\n<li><p>Jika pengguna masuk, adalah anggota staf (<code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_staff=True</span></code>), dan aktif (<code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_active=True</span></code>), kerjakan tampilan secara biasa.</p></li>\n<li><p>Sebaliknya, permintaan akan dialihkan ke URL ditentukan oleh parameter <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code>, dengan jalur aslinya diminta dalam sebuah variabel string permintaan ditentukan oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code>. Sebagai contoh: <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/login/?next=/admin/polls/question/3/</span></code>.</p></li>\n</ul>\n<p>Contoh penggunaan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.admin.views.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">staff_member_required</span>\n\n<span class=\"nd\">@staff_member_required</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n</dd></dl>\n\n</section>","rootId":"module-django.contrib.admin","toc":[{"title":"Ikhtisar","anchor":"overview","children":[{"title":"Topik lainnya","anchor":"other-topics","children":[]}]},{"title":"Obyek ModelAdmin","anchor":"modeladmin-objects","children":[{"title":"Penghias register","anchor":"the-register-decorator","children":[]},{"title":"Penemuan dari berkas admin","anchor":"discovery-of-admin-files","children":[]},{"title":"Pilihan ModelAdmin","anchor":"modeladmin-options","children":[{"title":"Penyesuaian pilihan cetakan","anchor":"custom-template-options","children":[]}]},{"title":"Cara ModelAdmin","anchor":"modeladmin-methods","children":[{"title":"Cara lain","anchor":"other-methods","children":[]}]},{"title":"Pengertian aset ModelAdmin","anchor":"modeladmin-asset-definitions","children":[{"title":"jQuery","anchor":"jquery","children":[]}]},{"title":"Menambahkan pengesahan penyesuaian pada admin","anchor":"adding-custom-validation-to-the-admin","children":[]}]},{"title":"Obyek InlineModelAdmin","anchor":"inlinemodeladmin-objects","children":[{"title":"Pilihan InlineModelAdmin","anchor":"inlinemodeladmin-options","children":[]},{"title":"Bekerja dengan sebuah model dengan dua atau lebih foreign key pada model induk yang sama.","anchor":"working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model","children":[]},{"title":"Bekerja dengan model banyak-ke-banyak","anchor":"working-with-many-to-many-models","children":[]},{"title":"Bekerja dengan model perantara many-to-many","anchor":"working-with-many-to-many-intermediary-models","children":[]},{"title":"Menggunakan hubungan umum sebagai sebuah berderet","anchor":"using-generic-relations-as-an-inline","children":[]}]},{"title":"Menimpa cetakan admin","anchor":"overriding-admin-templates","children":[{"title":"Setel direktori cetakan admin proyek","anchor":"set-up-your-projects-admin-template-directories","children":[]},{"title":"Menimpa lawan mengganti cetakan admin","anchor":"overriding-vs-replacing-an-admin-template","children":[]},{"title":"Cetakan-cetakan yang mungkin menimpa per aplikasi atau model","anchor":"templates-which-may-be-overridden-per-app-or-model","children":[]},{"title":"Cetakan akar dan masuk","anchor":"root-and-login-templates","children":[]}]},{"title":"Theming support","anchor":"theming-support","children":[]},{"title":"Obyek AdminSite","anchor":"adminsite-objects","children":[{"title":"Atribut AdminSite","anchor":"adminsite-attributes","children":[]},{"title":"Cara AdminSite","anchor":"adminsite-methods","children":[]},{"title":"Mengkaitkan instance AdminSite kedalam URLconf anda","anchor":"hooking-adminsite-instances-into-your-urlconf","children":[]},{"title":"Menyesuaikan kelas AdminSite.","anchor":"customizing-the-adminsite-class","children":[]},{"title":"Menimpa situs admin awalan","anchor":"overriding-the-default-admin-site","children":[]},{"title":"Banyak situs admin di URLconf yang sama","anchor":"multiple-admin-sites-in-the-same-urlconf","children":[]},{"title":"Menambahkan tampilan ke situs admin","anchor":"adding-views-to-admin-sites","children":[]},{"title":"Menambahkan fitur penyetelan kembali sandi","anchor":"adding-a-password-reset-feature","children":[]}]},{"title":"Obyek LogEntry","anchor":"logentry-objects","children":[{"title":"Atribut LogEntry","anchor":"logentry-attributes","children":[]},{"title":"Cara LogEntry","anchor":"logentry-methods","children":[]}]},{"title":"Membalikkan URL admin","anchor":"reversing-admin-urls","children":[]},{"title":"The display decorator","anchor":"the-display-decorator","children":[]},{"title":"Penghias staff_member_required","anchor":"the-staff-member-required-decorator","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/4.1/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/4.1/ref/contrib/"}],"prev":{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/4.1/ref/contrib/"},"next":{"docname":"ref/contrib/admin/actions","title":"Tindakan admin","url":"/id/4.1/ref/contrib/admin/actions/"},"formats":{"html":"/id/4.1/ref/contrib/admin/","markdown":"/id/4.1/ref/contrib/admin.md","json":"/id/4.1/ref/contrib/admin.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/ref/contrib/admin/index.txt","official":"https://docs.djangoproject.com/id/4.1/ref/contrib/admin/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}