{"title":"Bagaimana mengesampingkan cetakan","version":"5.2","locale":"id","docname":"howto/overriding-templates","url":"/id/5.2/howto/overriding-templates/","canonical":"https://djangodocs.dev/id/5.2/howto/overriding-templates/","summary":"Dalam proyek anda, anda mungkin ingin menimpa sebuah cetakan dalam aplikasi Django lain, apakai itu berupa aplikasi pihak-ketiga atau aplikasi bantuan seperti…","html":"<h1>Bagaimana mengesampingkan cetakan<a class=\"heading-anchor\" href=\"#how-to-override-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Dalam proyek anda, anda mungkin ingin menimpa sebuah cetakan dalam aplikasi Django lain, apakai itu berupa aplikasi pihak-ketiga atau aplikasi bantuan seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code>. Anda dapat antara menaruh cetakan menimpa dalam direktori cetakan proyek anda atau dalam sebuah direktori cetakan aplikasi.</p>\n<p>Jika anda mempunyai aplikasi dan direktori cetakan proyek yang kedua kandungan menimpa, pemuat cetakan Django awalan akan mencoba memuat cetakan dari direktori tingkat-proyek dahulu. Dengan kata lain, <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span> <span class=\"pre\">1</span></code> dicari sebelum <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APP_DIRS</span> <span class=\"pre\">2</span></code>.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Lihat juga</p>\n<p>Baca <a class=\"reference internal\" href=\"/id/5.2/ref/forms/renderers/#overriding-built-in-widget-templates\"><span class=\"std std-ref\">Menimpa cetakan widget siap-pakai</span></a> jika anda sedang mencari untuk melakukannya.</p>\n</aside>\n<section id=\"overriding-from-the-project-s-templates-directory\">\n<h2>Menimpa dari direktori cetakan proyek<a class=\"heading-anchor\" href=\"#overriding-from-the-project-s-templates-directory\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Pertama, kami akan menjelajahi menimpa cetakan dengan membuat cetakan pengganti dalam direktori cetakan proyek anda.</p>\n<p>Mari kita katakan anda sedang mencoba menimpa cetakan untuk aplikasi pihak-ketiga disebut <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code>, yang menyediakan cetakan <code class=\"docutils literal notranslate\"><span class=\"pre\">blog/post.html</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">blog/list.html</span></code>. Pengaturan terkait untuk proyek anda akan terlihat seperti:</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\">pathlib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Path</span>\n\n<span class=\"n\">BASE_DIR</span> <span class=\"o\">=</span> <span class=\"n\">Path</span><span class=\"p\">(</span><span class=\"vm\">__file__</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">resolve</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">parent</span><span class=\"o\">.</span><span class=\"n\">parent</span>\n\n<span class=\"n\">INSTALLED_APPS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"o\">...</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;blog&quot;</span><span class=\"p\">,</span>\n    <span class=\"o\">...</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n\n<span class=\"n\">TEMPLATES</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.template.backends.django.DjangoTemplates&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;DIRS&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"n\">BASE_DIR</span> <span class=\"o\">/</span> <span class=\"s2\">&quot;templates&quot;</span><span class=\"p\">],</span>\n        <span class=\"s2\">&quot;APP_DIRS&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"c1\"># ...</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">BASE_DIR</span></code> akan sudah ada jika anda membuat proyek anda menggunakan cetakan proyek awalan. Pengaturan yang butuh dirubah adalah <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS1</span></code>.</p>\n<p>Pengaturan ini menganggap anda mempunyai sebuah direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code> dalam akar dari proyek anda. Untuk menimpa cetakan untuk aplikasi <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code>, buat sebuah folder dalam direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code>, dan tambah berkas-berkas cetakan ke folder itu.</p>\n<div class=\"code-block\" data-language=\"none\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">None</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=\"None code\"><code>templates/\n    blog/\n        list.html\n        post.html\n</code></pre></div>\n<p>Pemuat cetakan pertama mencari untuk cetakan dalam direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">DIRS</span></code>. ketika tampilan dalam aplikasi <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code> untuk cetakan <code class=\"docutils literal notranslate\"><span class=\"pre\">blog/post.html</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">blog/list.html</span></code>, pemuat akan mengembalikan berkas-berkas anda telah buat.</p>\n</section>\n<section id=\"overriding-from-an-app-s-template-directory\">\n<h2>Menimpa dari direktori cetakan aplikasi<a class=\"heading-anchor\" href=\"#overriding-from-an-app-s-template-directory\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sejak anda sedang menimpa cetakan bertempat di luar dari satu dari aplikasi proyek anda, itu adalah lebih umum menggunakan metode pertama dan menaruh cetakan penimpaan dalam sebuah folder cetakan proyek. Jika anda memilih, bagaimanapun, itu juga memungkinkan menaruh penimpaan dalam sebuah direktori cetakan aplikasi.</p>\n<p>Pertama, pastikan pengaturan cetakan anda memeriksa didalam direktori aplikasi:</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\">TEMPLATES</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">{</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"s2\">&quot;APP_DIRS&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"c1\"># ...</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Jika anda ingin menaruh cetakan penimpaan dalam sebuah aplikasi disebut <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp</span></code> dan cetakan untuk menima bernama <code class=\"docutils literal notranslate\"><span class=\"pre\">blog/list.html</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">blog/post.html</span></code>, kemudian struktur direktori anda akan terlihat seperti:</p>\n<div class=\"code-block\" data-language=\"none\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">None</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=\"None code\"><code>myapp/\n    templates/\n        blog/\n            list.html\n            post.html\n</code></pre></div>\n<p>Dengan <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APP_DIRS1</span></code> disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, pemuat cetakan akan terlihat dalam direktori cetakan aplikasi dan menemukan cetakan.</p>\n</section>\n<section id=\"extending-an-overridden-template\">\n<span id=\"id1\"></span><h2>Memperluas cetakan yang diganti<a class=\"heading-anchor\" href=\"#extending-an-overridden-template\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dengan pemuat cetakan dikonfigurasikan, anda dapat memperpanjang cetakan menggunakan etiket cetakan <a class=\"reference internal\" href=\"/id/5.2/ref/templates/builtins/#std-templatetag-extends\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">extends</span> <span class=\"pre\">%}</span></code></a> sementara pada saat yang sama mengesampingkannya. Hal ini memungkinkan anda membuat penyesuaian kecil tanpa perlu menerapkan ulang keseluruhan cetakan.</p>\n<p>Sebagai contoh, anda dapat menggunakan teknik ini untuk menambahkan logo penyesuaian pada cetakan <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/base_site.html</span></code></figcaption>\n<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\n <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\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;link/to/logo.png&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;logo&quot;</span><span class=\"p\">&gt;</span>\n   <span class=\"cp\">{{</span> <span class=\"nb\">block</span><span class=\"nv\">.super</span> <span class=\"cp\">}}</span>\n <span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></figure>\n<p>Titik kunci pada catatan:</p>\n<ul class=\"simple\">\n<li><p>Contoh membuat sebuah berkas pada <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/base_site.html</span></code> yang menggunakan tingkat-proyek dikonfigurasikan direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code> directory untuk menimpa <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>.</p></li>\n<li><p>Cetakan baru meluas <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>, yang merupakan cetakan sama seperti sedang ditimpa.</p></li>\n<li><p>Cetakan hanya mengganti blok <code class=\"docutils literal notranslate\"><span class=\"pre\">branding</span></code>, menambahkan logo penyesuaian, dan menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">block.super</span></code> untuk mempertahankan konten sebelumnya.</p></li>\n<li><p>Sisa dari cetakan diturunkan tidak berubah dari <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>.</p></li>\n</ul>\n<p>Teknik ini bekerja karena pemuat cetakan tidak mempertimbangkan cetakan pengganti yang sudah dimuat (pada <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/base_site.html</span></code>) ketika mengatasi etiket <code class=\"docutils literal notranslate\"><span class=\"pre\">extends</span></code>. Gabungkan dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">block.super</span></code> itu adalah teknik sangat kuat untuk membuat penyesuaian kecil.</p>\n</section>","rootId":"how-to-override-templates","toc":[{"title":"Menimpa dari direktori cetakan proyek","anchor":"overriding-from-the-project-s-templates-directory","children":[]},{"title":"Menimpa dari direktori cetakan aplikasi","anchor":"overriding-from-an-app-s-template-directory","children":[]},{"title":"Memperluas cetakan yang diganti","anchor":"extending-an-overridden-template","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Panduan Cara-cara","url":"/id/5.2/howto/"}],"prev":{"docname":"howto/outputting-pdf","title":"Bagaimana membuat berkas PDF","url":"/id/5.2/howto/outputting-pdf/"},"next":{"docname":"howto/custom-template-backend","title":"Bagaimana menerapkan backend cetakan disesuaikan","url":"/id/5.2/howto/custom-template-backend/"},"formats":{"html":"/id/5.2/howto/overriding-templates/","markdown":"/id/5.2/howto/overriding-templates.md","json":"/id/5.2/howto/overriding-templates.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/howto/overriding-templates.txt","official":"https://docs.djangoproject.com/id/5.2/howto/overriding-templates/","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"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}