{"title":"Menulis aplikasi Django kedua anda, bagian 7","version":"3.2","locale":"id","docname":"intro/tutorial07","url":"/id/3.2/intro/tutorial07/","canonical":"https://djangodocs.dev/id/3.2/intro/tutorial07/","summary":"Tutorial ini mulai dimana Tutorial 6 ditinggalkan. Kami melanjutkan aplikasi jejak pendapat Jaringan dan akan fokus pada menyesuaikan situs admin…","html":"<h1>Menulis aplikasi Django kedua anda, bagian 7<a class=\"heading-anchor\" href=\"#writing-your-first-django-app-part-7\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tutorial ini mulai dimana <a class=\"reference internal\" href=\"/id/3.2/intro/tutorial06/\"><span class=\"doc\">Tutorial 6</span></a> ditinggalkan. Kami melanjutkan aplikasi jejak pendapat Jaringan dan akan fokus pada menyesuaikan situs admin dibangkitkan-otomatis Django yang kami pertama jelajahi di <a class=\"reference internal\" href=\"/id/3.2/intro/tutorial02/\"><span class=\"doc\">Tutorial 2</span></a>.</p>\n<aside class=\"admonition-where-to-get-help admonition\">\n<p class=\"admonition-title\">Dimana mendapatkan bantuan:</p>\n<p>Jika anda memiliki masalah melalui tutorial ini, harap geser ke <a class=\"reference internal\" href=\"/id/3.2/faq/help/\"><span class=\"doc\">Getting Help</span></a> bagian dari FAQ.</p>\n</aside>\n<section id=\"customize-the-admin-form\">\n<h2>Sesuaikan bentuk admin<a class=\"heading-anchor\" href=\"#customize-the-admin-form\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dengan mendaftarkan model <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code> dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.site.register(Question)</span></code>, Django dapat membangun bentuk perwakilan awal. Sering, anda akan menginginkan menyesuaikan bagaimana bentuk admin kelihatan dan bekerja. Anda akan melakukan ini dengan memberitahu Django pilihan anda ingin ketika anda mendaftar obyek.</p>\n<p>Mari kita lihat bagaimana ini bekerja dengan mengurutkan kembali bidang di formulir sunting. Ganti baris <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.site.register(Question)</span></code> dengan:</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\">polls/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\">Question</span>\n\n\n<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\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;pub_date&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;question_text&#39;</span><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\">Question</span><span class=\"p\">,</span> <span class=\"n\">QuestionAdmin</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Anda akan mengikuti corak ini -- buat sebuah kelas admin model, kemudian lewati dia sebagai argumen kedua ke <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.site.register()</span></code> -- setiap saat anda butuh merubah pilihan admin untuk sebuah model.</p>\n<p>Perubahan khusus ini diatas membuat &quot;Tanggal penerbitan&quot; datang sebelum bidang &quot;Pertanyaan&quot; :</p>\n<img alt=\"Fields have been reordered\" src=\"/id/3.2/_images/admin07.png\" />\n<p>Ini tidak hebat dengan hanya dua bidang, tetapi untuk bentuk admin dengan lusinan bidang, memilih urutan intuitif adalah rincian kegunaan penting.</p>\n<p>Dan berbicara formulir dengan lusinan bidang, anda mungkin ingin memisahkan formulir menjadi kumpulan bidang:</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\">polls/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\">Question</span>\n\n\n<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\">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><span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s1\">&#39;question_text&#39;</span><span class=\"p\">]}),</span>\n        <span class=\"p\">(</span><span class=\"s1\">&#39;Date information&#39;</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s1\">&#39;pub_date&#39;</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\">Question</span><span class=\"p\">,</span> <span class=\"n\">QuestionAdmin</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Unsur pertama dari setiap tuple di <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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> adalah judul dari fieldset. Ini adalah apa formulir kami kelihatan seperti sekarang:</p>\n<img alt=\"Form has fieldsets now\" src=\"/id/3.2/_images/admin08t.png\" />\n</section>\n<section id=\"adding-related-objects\">\n<h2>Menambahkan obyek terhubung<a class=\"heading-anchor\" href=\"#adding-related-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>OKE, kami mempunyai halaman admin Pertanyaan, tetapi <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code> mempunyai banyak <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code>, dan halaman admin tidak menampilkan pilihan.</p>\n<p>Masih.</p>\n<p>Ada dua cara menyelesaikan masalah ini. pertama adalah mendaftarkan <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code> dengan admin seperti yang kami lakukan dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code>:</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\">polls/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\">Choice</span><span class=\"p\">,</span> <span class=\"n\">Question</span>\n<span class=\"c1\"># ...</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\">Choice</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Sekarang &quot;Pilihan&quot; adalah pilihan tersedia di admin Django. Bentuk &quot;Tambah pilihan&quot; kelihatan seperti ini:</p>\n<img alt=\"Choice admin page\" src=\"/id/3.2/_images/admin09.png\" />\n<p>Di bentuk itu, bidang &quot;Pertanyaan&quot; adalah kotak pilih mengandung setiap pertanyaan di basisdata. Django mengetahui bahwa <a class=\"reference internal\" href=\"/id/3.2/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> harus diwakilkan di admin sebagai kotal <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code>. Di kasus kami, hanya satu pertanyaan ada di titik ini.</p>\n<p>Juga catat tautan &quot;Tambah lainnya&quot; dekat ke &quot;Pertanyaan&quot;. Setiap obyek dengan hubungan <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>  ke lainnya mendapatkan ini untuk bebas. Ketika anda klik &quot;Tambah Lainnya&quot;, anda akan mendapatkan jendela popup dengan bentuk &quot;Tambah pertanyaan&quot;. Jika anda menambah pertanyaan di jendela itu dan klik &quot;Simpan&quot;, Django akan menyimpan pertanyaan di basisdata dan secara dinamis menambahkannya sebagai pilihan terpilih pada bentuk &quot;Tambah Pilihan&quot; yang anda cari.</p>\n<p>Tetapi, sungguh, ini bukan cara efisien dari menambahkan obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code> ke sistem. Akan lebih baik jika anda dapat menambahkan sekumpulan Pilihan langsung ketika anda membuat obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code>. Mari kita membuatnya terjadi.</p>\n<p>Pindahkan pemanggilan <code class=\"docutils literal notranslate\"><span class=\"pre\">register()</span></code> untuk model <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code>. Lalu, sunting kode pendaftaran <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code> untuk dibaca:</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\">polls/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\">Choice</span><span class=\"p\">,</span> <span class=\"n\">Question</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChoiceInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">StackedInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Choice</span>\n    <span class=\"n\">extra</span> <span class=\"o\">=</span> <span class=\"mi\">3</span>\n\n\n<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\">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><span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s1\">&#39;question_text&#39;</span><span class=\"p\">]}),</span>\n        <span class=\"p\">(</span><span class=\"s1\">&#39;Date information&#39;</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s1\">&#39;fields&#39;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s1\">&#39;pub_date&#39;</span><span class=\"p\">],</span> <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=\"p\">]</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">ChoiceInline</span><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\">Question</span><span class=\"p\">,</span> <span class=\"n\">QuestionAdmin</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Ini memberitahu Django: &quot;obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code> sedang disunting pada halaman admin <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code>. Secara awal, cukup menyediakan bidang untuk 3 pilihan.&quot;</p>\n<p>Muat halaman &quot;Tambahan pertanyaan&quot; untuk melihat bagaimana kelihatannya:</p>\n<img alt=\"Add question page now has choices on it\" src=\"/id/3.2/_images/admin10t.png\" />\n<p>Dia bekerja seperti ini: Terdapat tiga bagian untuk Pilihan terhubung -- sesuai ditentukan oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">extra</span></code> -- dan setiap waktu anda kembali ke halaman &quot;Rubah&quot; untuk obyek sudah-sibuat, anda mendapatkan tiga ekstra bagian lain.</p>\n<p>Di akhir dari tiga petak saat ini anda akan menemukan sebuah tautan &quot;Tambah Pilihan lain&quot;. Jika mengkliknya, petak baru akan ditambahkan. Jika anda ingin menambahkan petak, anda dapat mengklik pada X di kanan atas dari petak ditambah. Gambar dibawah ini menunjukkan sebuah petak ditambah:</p>\n<img alt=\"Additional slot added dynamically\" src=\"/id/3.2/_images/admin14t.png\" />\n<p>Satu masalah kecil, meskipun. Itu mengambil banyak lahan layar untuk menampilkan semua bidang untuk memasukkan objek <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code> terkait. Untuk alasan itu, Django menawarkan cara datar dari menampilkan objek terkait di barisan. Untuk menggunakan itu, rubah pernyataan  <code class=\"docutils literal notranslate\"><span class=\"pre\">ChoiceInline</span></code> untuk membaca:</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\">polls/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=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChoiceInline</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=\"c1\">#...</span>\n</code></pre></figure>\n<p>Dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code> (daripada <code class=\"docutils literal notranslate\"><span class=\"pre\">StackedInline</span></code>), obyek terhubung ditampilkan lebih rapat, bentuk berbasiskan-tabel:</p>\n<img alt=\"Add question page now has more compact choices\" src=\"/id/3.2/_images/admin11t.png\" />\n<p>Catat bahwa terdapat kolom &quot;Hapus?&quot; tambahan yang mengizinkan memindahkan baris ditambahkan menggunakan tombol &quot;Tambah Pilihan Lain&quot; dan baris telah disimpan.</p>\n</section>\n<section id=\"customize-the-admin-change-list\">\n<h2>Sesuaiakan daftar perubahan admin<a class=\"heading-anchor\" href=\"#customize-the-admin-change-list\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sekarang bahwa halaman admin Question kelihatan bagus, mari kita membuat beberapa perubahan untuk &quot;daftar rubah&quot; halaman -- satu yang menampilkan semua pertanyaan di sistem.</p>\n<p>Inilah yang terlihat seperti pada saat ini:</p>\n<img alt=\"Polls change list page\" src=\"/id/3.2/_images/admin04t.png\" />\n<p>Secara awal, Django menampilkan <code class=\"docutils literal notranslate\"><span class=\"pre\">str()</span></code> dari setiap obyek. Tetapi terkadang itu akan lebih membantu jika kami dapat menampilkan bidang secara masing-masing. untuk melakukannya, gunakan pilihan admin <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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 merupakan tuple dari nama bidang untuk ditampilkan, sebagai kolom, pada halaman daftar perubahan untuk obyek:</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\">polls/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=\"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=\"c1\"># ...</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;question_text&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;pub_date&#39;</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Untuk ukuran terbaik, mari juta juga sertakan metode <code class=\"docutils literal notranslate\"><span class=\"pre\">was_published_recently()</span></code> dari <a class=\"reference internal\" href=\"/id/3.2/intro/tutorial02/\"><span class=\"doc\">Tutorial 2</span></a>:</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\">polls/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=\"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=\"c1\"># ...</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s1\">&#39;question_text&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;pub_date&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;was_published_recently&#39;</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Sekarang pertanyaan halaman daftar perubahan kelihatan seperti ini:</p>\n<img alt=\"Polls change list page, updated\" src=\"/id/3.2/_images/admin12t.png\" />\n<p>Anda dapat meng klik di kepala kolom untuk mengurutkan nilai tersebut -- kecuali di kasus kepala <code class=\"docutils literal notranslate\"><span class=\"pre\">was_published_recently</span></code>, karena mengurutkan berdasarkan keluaran dari cara sewenang-wenang tidak didukung. Juga catat bahwa kepala kolom untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">was_published_recently</span></code> adalah, secara awal, nama dari cara (dengan garis bawah ditandai dengan spasi), dan setiap baris mengandung string mewakili dari keluaran.</p>\n<p>Anda dapat meningkatkan itu dengan menggunakan penghias <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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> pada metode itu (dalam <code class=\"file docutils literal notranslate\"><span class=\"pre\">polls/models.py</span></code>), sebagai berikut:</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\">polls/models.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\">Question</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=\"c1\"># ...</span>\n    <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;pub_date&#39;</span><span class=\"p\">,</span>\n        <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s1\">&#39;Published recently?&#39;</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">was_published_recently</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">now</span> <span class=\"o\">=</span> <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"n\">now</span> <span class=\"o\">-</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">timedelta</span><span class=\"p\">(</span><span class=\"n\">days</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"o\">&lt;=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"o\">&lt;=</span> <span class=\"n\">now</span>\n</code></pre></figure>\n<p>Untuk informasi lebih pada properti yang dapat dikonfigurasikan melalui penghias lihat <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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>Sunting berkas <code class=\"file docutils literal notranslate\"><span class=\"pre\">polls/admin.py</span></code> anda kembali dan tambah perbaikan ke halaman daftar perubahan <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code> : saringan menggunakan <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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>. Tambah baris berikut ke <code class=\"docutils literal notranslate\"><span class=\"pre\">QuestionAdmin</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\">list_filter</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">&#39;pub_date&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Itu menambahkan batang sisi &quot;Saringan&quot; yang membiarkan orang menyaring daftar perubahan dengan bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">pub_date</span></code>:</p>\n<img alt=\"Polls change list page, updated\" src=\"/id/3.2/_images/admin13t.png\" />\n<p>Jenis dari saringan ditampilkan tergantung pada jenis dari bidang anda saringkan. karena <code class=\"docutils literal notranslate\"><span class=\"pre\">pub_date</span></code> adalah sebuah <a class=\"reference internal\" href=\"/id/3.2/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code></a>, Django mengetahui untuk memberikan pilihan saringan sesuai: &quot;Tanggal kapanpun&quot;, &quot;7 hari terakhir&quot;,&quot; Bulan ini&quot;, &quot;Tahun ini&quot;.</p>\n<p>Ini adalah pembentukan baik. Mari kita menambahkan beberapa kemampuan 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;question_text&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Itu menambah kotak pencarian di bagian atas dari daftar rubah. Ketika seseorang memasukkan istilah pencarian, Django akan mencari bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">question_text</span></code>. Anda dapat menggunakan sebanyak bidang anda suka -- meskipun karena itu menggunakan query <code class=\"docutils literal notranslate\"><span class=\"pre\">LIKE</span></code> dibelakang layar, membatasi angka bidan gpencarian untuk angka yang beralasan akan membuatnya mudah bagi basisdata anda melakukan pencarian.</p>\n<p>Sekarang juga waktu bagus untuk mencatat bahwa daftar perubahan diberikan ke anda bebas halaman Awalnya adalah menampilkan 100 barang per halaman. <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_per_page\" title=\"django.contrib.admin.ModelAdmin.list_per_page\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Change</span> <span class=\"pre\">list</span> <span class=\"pre\">pagination</span></code></a>, <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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</span> <span class=\"pre\">boxes</span></code></a>, <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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\">filters</span></code></a>, <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.date_hierarchy\" title=\"django.contrib.admin.ModelAdmin.date_hierarchy\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">date-hierarchies</span></code></a>, dan <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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\">column-header-ordering</span></code></a> semua kerja bersama seperti anda berpikir mereka seharusnya.</p>\n</section>\n<section id=\"customize-the-admin-look-and-feel\">\n<h2>Sesuaikan admin lihat dan rasakan<a class=\"heading-anchor\" href=\"#customize-the-admin-look-and-feel\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Jelas, mempunyai &quot;Administrasi Django&quot; pada atas dari setiap halaman admin adalah menggelikan. Itu adalah hanya teks placeholder.</p>\n<p>Anda dapat merubahnya, meskipun, menggunakan sistem cetakan Django. Admin Django ditenagai oleh Django itu sendiri, dan antarmukanya menggunakan sistem cetakan Django sendiri.</p>\n<section id=\"customizing-your-project-s-templates\">\n<span id=\"ref-customizing-your-projects-templates\"></span><h3>Menyesuaikan cetakan <em>proyek</em> anda<a class=\"heading-anchor\" href=\"#customizing-your-project-s-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Buat sebuah direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code> di proyek direktori anda (satu yang mengandung <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code>). Cetakan dapat berada di mana saja di sistem berkas anda yang Django dapat akses. (Django berjalan saat pengguna apapun peladen anda berjalan.) Bagaimanapun, menjaga cetakan dalam proyek adalah kebiasaan bagus untuk diikuti.</p>\n<p>Buka berkas pengaturan anda (<code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/settings.py</span></code>, ingat) dan tambah pilihan <a class=\"reference internal\" href=\"/id/3.2/ref/settings/#std-setting-TEMPLATES-DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span></code></a> di pengaturan <a class=\"reference internal\" href=\"/id/3.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> :</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\">mysite/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\">TEMPLATES</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">{</span>\n        <span class=\"s1\">&#39;BACKEND&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;django.template.backends.django.DjangoTemplates&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;DIRS&#39;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"n\">BASE_DIR</span> <span class=\"o\">/</span> <span class=\"s1\">&#39;templates&#39;</span><span class=\"p\">],</span>\n        <span class=\"s1\">&#39;APP_DIRS&#39;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;OPTIONS&#39;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s1\">&#39;context_processors&#39;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n                <span class=\"s1\">&#39;django.template.context_processors.debug&#39;</span><span class=\"p\">,</span>\n                <span class=\"s1\">&#39;django.template.context_processors.request&#39;</span><span class=\"p\">,</span>\n                <span class=\"s1\">&#39;django.contrib.auth.context_processors.auth&#39;</span><span class=\"p\">,</span>\n                <span class=\"s1\">&#39;django.contrib.messages.context_processors.messages&#39;</span><span class=\"p\">,</span>\n            <span class=\"p\">],</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p><a class=\"reference internal\" href=\"/id/3.2/ref/settings/#std-setting-TEMPLATES-DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span></code></a> adalah daftar dari direktori sistem berkas untuk memeriksa ketika memuat cetakan Django; dia adalah jalur pencarian.</p>\n<aside class=\"admonition-organizing-templates admonition\">\n<p class=\"admonition-title\">Mengatur cetakan</p>\n<p>Sama seperti berkas-berkas tetap, kami <em>dapat</em> mempunyai semua cetakan bersama-sama, dalam satu direktori cetakan besar, dan itu akan bekerja sempurna. Bagaimanapun, cetakan-cetakan yang milik aplikasi tertentu harus ditempatkan dalam direktori cetakan aplikasi (contoh <code class=\"docutils literal notranslate\"><span class=\"pre\">polls/templates</span></code>) daripada (<code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code>) proyek. Kami akan mengobrolkan lebih rinci dalam  :doc:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>reusable apps tutorial ` <em>mengapa</em> kami melakukan ini.</p>\n</aside>\n<p>Sekarang buat sebuah direktori disebut <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> didalam <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code>, dan salin cetakan <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code> dari dalam direktori cetakan admin Django awal di kode sumber dari Django itu sendiri (<code class=\"docutils literal notranslate\"><span class=\"pre\">django/contrib/admin/templates</span></code>) kedalam direktori itu.</p>\n<aside class=\"admonition-where-are-the-django-source-files admonition\">\n<p class=\"admonition-title\">Dimana berkas sumber Django?</p>\n<p>Jika anda mempunyai kesulitan dimana berkas sumber Django ditempatkan di sistem anda, jalankan perintah berikut:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-c<span class=\"w\"> </span><span class=\"s2\">&quot;import django; print(django.__path__)&quot;</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -c <span class=\"s2\">&quot;import django; print(django.__path__)&quot;</span>\n</code></pre></div></div></div>\n</aside>\n<p>Kemudian, sunting berkas dan ganti <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">site_header|default:_('Django</span> <span class=\"pre\">administration')</span> <span class=\"pre\">}}</span></code> (termasuk tanda buka kurung bergelombang) dengan nama situs anda sendiri untuk melihatnya cocok. Anda akan berakhir dengan bagian seperti kode:</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\">block</span> <span class=\"nv\">branding</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">h1</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;site-name&quot;</span><span class=\"p\">&gt;&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:index&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Polls Administration<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">h1</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>Kami menggunakan pendekatan ini untuk mengajarkan anda bagaimana menimpa cetakan. Di proyek sesungguhnya, anda mungkin menggunakan atribut <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/admin/#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\">django.contrib.admin.AdminSite.site_header</span></code></a> untuk lebih mudah membuat penyesuaian tertentu.</p>\n<p>Berkas cetakan ini mengandung banyak teks seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">block</span> <span class=\"pre\">branding</span> <span class=\"pre\">%}</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">title</span> <span class=\"pre\">}}</span></code>. Etiket <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span></code> adalah bagian dari bahasa cetakan Django. Ketika Django membangun <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>, bahasa cetakan akan menilai untuk menghasilkan halaman HTML akhir, sama seeprti kami lihat di <a class=\"reference internal\" href=\"/id/3.2/intro/tutorial03/\"><span class=\"doc\">Tutorial 3</span></a>.</p>\n<p>Catat bahwa cetakan admin awalan Django dapat ditimpa. Untuk menimpa cetakan, lakukan hal sama anda lakukan dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">base_site.html</span></code> -- salin itu dari direktori awalan kedalam direktori penyesuaian anda, dan buat perubahan.</p>\n</section>\n<section id=\"customizing-your-application-s-templates\">\n<h3>Menyesuaikan cetakan <em>aplikasi</em> anda<a class=\"heading-anchor\" href=\"#customizing-your-application-s-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Pembaca cerdik akan bertanya: Tetapi jika <a class=\"reference internal\" href=\"/id/3.2/ref/settings/#std-setting-TEMPLATES-DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span></code></a> kosong secara awal, bagaimana Django menemukan cetakan admin awal? Jawabannya adalah, sejak <a class=\"reference internal\" href=\"/id/3.2/ref/settings/#std-setting-TEMPLATES-APP_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APP_DIRS</span></code></a> disetel ke <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, Django otomatis mencari subdirektori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/</span></code> dalam setiap paket aplikasi, untuk digunakan sebagai kembali (jangan lupa bahwa <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code> adalah sebuah aplikasi).</p>\n<p>Aplikasi jejak pendapat kami tidak sangat rumit dan tidak butuh penyesuaian cetakan admin. Tetapi jika itu tumbuh lebih mutkahir dan membutuhkan perubahan dari cetakan admin standar Django untuk beberapa fungsinya, itu akan lebih bijaksana untuk merubah cetakan <em>aplikasi</em>, daripada itu di <em>proyek</em>. Lewat situ, anda dapat menyertakan aplikasi jejak pendapat di proyek baru apapun dan terjamin bahwa dia akan menemukan cetakan penyesuaian dia butuhkan.</p>\n<p>Lihat <a class=\"reference internal\" href=\"/id/3.2/topics/templates/#template-loading\"><span class=\"std std-ref\">dokumentasi memuat cetakan</span></a> untuk informasi lebih tentang bagaimana Django menemukan cetakannya.</p>\n</section>\n</section>\n<section id=\"customize-the-admin-index-page\">\n<h2>Sesuaikan halaman index admin<a class=\"heading-anchor\" href=\"#customize-the-admin-index-page\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Pada catatan sama, anda mungkin ingin menyesuaikan penampilan dan rasa dari halaman index admin Django.</p>\n<p>Secara awal, dia menampilkan semua aplikasi di <a class=\"reference internal\" href=\"/id/3.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> yang telah didaftarkan dengan aplikasi admin, dalam urutan alfabet. Anda mungkin ingin membuat perubahan signifikan pada tata letak. Lagi pula, index mungkin halaman paling penting dari admin, dan dia harus mudah digunakan.</p>\n<p>Cetakan untuk menyesuaian adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/index.html</span></code>. (Lakukan sama dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code> di bagian sebelumnya --  salin dia dari direktori awal ke direktori cetakan penyesuaian anda). Sunting berkas, dan anda akan melihatnya menggunakan ceriabel cetakan dipanggil <code class=\"docutils literal notranslate\"><span class=\"pre\">app_list</span></code>. Variabel itu mengandung setiap aplikasi Django terpasang. Dari pada menggunakan itu, anda dapat kode-keras tautan ke halaman admin di jalan apapun anda pikir terbaik.</p>\n</section>\n<section id=\"what-s-next\">\n<h2>Apa Selanjutnya?<a class=\"heading-anchor\" href=\"#what-s-next\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tutorial pemula berakhir disini. Sementara itu, anda mungkin ingin memeriksa beberapa titik di <a class=\"reference internal\" href=\"/id/3.2/intro/whatsnext/\"><span class=\"doc\">kemana pergi dari sini</span></a>.</p>\n<p>Jika anda akrab dengan pemaketan Phyton dan tertarik dalam belajar bagaimana mengubah jejak pendapat menjadi &quot;aplikasi digunakan kembali&quot;, periksa  <a class=\"reference internal\" href=\"/id/3.2/intro/reusable-apps/\"><span class=\"doc\">Tutorial Lanjut: Bagaimana menulis aplikasi digunakan kembali</span></a>.</p>\n</section>","rootId":"writing-your-first-django-app-part-7","toc":[{"title":"Sesuaikan bentuk admin","anchor":"customize-the-admin-form","children":[]},{"title":"Menambahkan obyek terhubung","anchor":"adding-related-objects","children":[]},{"title":"Sesuaiakan daftar perubahan admin","anchor":"customize-the-admin-change-list","children":[]},{"title":"Sesuaikan admin lihat dan rasakan","anchor":"customize-the-admin-look-and-feel","children":[{"title":"Menyesuaikan cetakan proyek anda","anchor":"customizing-your-project-s-templates","children":[]},{"title":"Menyesuaikan cetakan aplikasi anda","anchor":"customizing-your-application-s-templates","children":[]}]},{"title":"Sesuaikan halaman index admin","anchor":"customize-the-admin-index-page","children":[]},{"title":"Apa Selanjutnya?","anchor":"what-s-next","children":[]}],"breadcrumbs":[{"docname":"intro/index","title":"Mulai","url":"/id/3.2/intro/"}],"prev":{"docname":"intro/tutorial06","title":"Menulis aplikasi Django pertama anda, bagian 6","url":"/id/3.2/intro/tutorial06/"},"next":{"docname":"intro/reusable-apps","title":"Tutorial lanjut: Bagaimana menulis aplikasi digunakan kembali","url":"/id/3.2/intro/reusable-apps/"},"formats":{"html":"/id/3.2/intro/tutorial07/","markdown":"/id/3.2/intro/tutorial07.md","json":"/id/3.2/intro/tutorial07.json"},"source":"https://github.com/django/django/blob/stable/3.2.x/docs/intro/tutorial07.txt","official":"https://docs.djangoproject.com/id/3.2/intro/tutorial07/","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"]}