{"title":"Tampilan penyuntingan umum","version":"2.2","locale":"id","docname":"ref/class-based-views/generic-editing","url":"/id/2.2/ref/class-based-views/generic-editing/","canonical":"https://djangodocs.dev/id/2.2/ref/class-based-views/generic-editing/","summary":"Tampilan berikut digambarkan pada halaman ini dan menyediakan sebuah dasar untuk menyunting isi: django.views.generic.edit.FormView…","html":"<h1>Tampilan penyuntingan umum<a class=\"heading-anchor\" href=\"#generic-editing-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tampilan berikut digambarkan pada halaman ini dan menyediakan sebuah dasar untuk menyunting isi:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.FormView\" title=\"django.views.generic.edit.FormView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.FormView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.CreateView\" title=\"django.views.generic.edit.CreateView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.CreateView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.UpdateView\" title=\"django.views.generic.edit.UpdateView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.UpdateView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.DeleteView\" title=\"django.views.generic.edit.DeleteView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.DeleteView</span></code></a></p></li>\n</ul>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Lihat juga</p>\n<p><a class=\"reference internal\" href=\"/id/2.2/ref/contrib/messages/\"><span class=\"doc\">messages framework</span></a> megnandung <a class=\"reference internal\" href=\"/id/2.2/ref/contrib/messages/#django.contrib.messages.views.SuccessMessageMixin\" title=\"django.contrib.messages.views.SuccessMessageMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SuccessMessageMixin</span></code></a>, yang memfasilitasi pesan-pesan disajikan mengenai keberhasilan pengajuan formulir.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Beberapa dari contoh-contoh pada halaman ini menganggap bahwa sebuah model <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> telah ditentukan sebagai berikut di <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/models.py</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.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.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\">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\">200</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_absolute_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;author-detail&#39;</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;pk&#39;</span><span class=\"p\">:</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">})</span>\n</code></pre></div>\n</aside>\n<section id=\"formview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">FormView</span></code><a class=\"heading-anchor\" href=\"#formview\"><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.views.generic.edit.FormView\">\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\">django.views.generic.edit.</span></span><span class=\"sig-name descname\"><span class=\"pre\">FormView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah tampilan yang memperlihatkan sebuah formulir. Pada kesalahan, memperlihatkan kembali formulir dengan pengesahan kesalahan; pada pengalihan sukses ke URL baru.</p>\n<p><strong>Ancestors (MRO)</strong></p>\n<p>Tampilan ini mewarisi metode dan atribut dari tampilan berikut:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.BaseFormView</span></code></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.FormMixin\" title=\"django.views.generic.edit.FormMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.FormMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.ProcessFormView\" title=\"django.views.generic.edit.ProcessFormView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.ProcessFormView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Contoh myapp/forms.py</strong>:</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\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n    <span class=\"n\">message</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Textarea</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">send_email</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># send email using the self.cleaned_data dictionary</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n<p><strong>Contoh myapp/views.py</strong>:</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\">myapp.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ContactForm</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.edit</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">FormView</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ContactView</span><span class=\"p\">(</span><span class=\"n\">FormView</span><span class=\"p\">):</span>\n    <span class=\"n\">template_name</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;contact.html&#39;</span>\n    <span class=\"n\">form_class</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span>\n    <span class=\"n\">success_url</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;/thanks/&#39;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">form_valid</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">):</span>\n        <span class=\"c1\"># This method is called when valid form data has been POSTed.</span>\n        <span class=\"c1\"># It should return an HttpResponse.</span>\n        <span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">send_email</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\">form_valid</span><span class=\"p\">(</span><span class=\"n\">form</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><strong>Contoh myapp/contact.html</strong>:</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=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">csrf_token</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">form.as_p</span> <span class=\"cp\">}}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;submit&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;Send message&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"createview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">CreateView</span></code><a class=\"heading-anchor\" href=\"#createview\"><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.views.generic.edit.CreateView\">\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\">django.views.generic.edit.</span></span><span class=\"sig-name descname\"><span class=\"pre\">CreateView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.CreateView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah tampilan yang menampilkan sebuah formulir untuk membuat sebuah obyek, memperlihatkan kembali formulir dengan pengesahan kesalahan (jika ada) dan menyimpan obyek.</p>\n<p><strong>Ancestors (MRO)</strong></p>\n<p>Tampilan ini mewarisi metode dan atribut dari tampilan berikut:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin\" title=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.BaseCreateView</span></code></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.ModelFormMixin\" title=\"django.views.generic.edit.ModelFormMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.ModelFormMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.FormMixin\" title=\"django.views.generic.edit.FormMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.FormMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.ProcessFormView\" title=\"django.views.generic.edit.ProcessFormView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.ProcessFormView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Atribut</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.CreateView.template_name_suffix\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_suffix</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.CreateView.template_name_suffix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Halaman <code class=\"docutils literal notranslate\"><span class=\"pre\">CreateView</span></code> diperlihatkan ke permintaan <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code> dari <code class=\"docutils literal notranslate\"><span class=\"pre\">'_form'</span></code>. Sebagai contoh, merubah atribut ini pada <code class=\"docutils literal notranslate\"><span class=\"pre\">'_create_form'</span></code> untuk sebuah tampilan membuat obyek-obyek untuk contoh model <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> akan menyebabkan awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">'myapp/author_create_form.html'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.CreateView.object\">\n<span class=\"sig-name descname\"><span class=\"pre\">object</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.CreateView.object\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ketika menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">CreateView</span></code> anda mempunyai akses ke <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code>, yaitu obyek sedang dibuat. Jika obyek belum dibuat, nilai akan menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</dd></dl>\n\n<p><strong>Contoh myapp/views.py</strong>:</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.views.generic.edit</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CreateView</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\">AuthorCreate</span><span class=\"p\">(</span><span class=\"n\">CreateView</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Author</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>\n</code></pre></div>\n<p><strong>Contoh myapp/author_form.html</strong>:</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=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">csrf_token</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">form.as_p</span> <span class=\"cp\">}}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;submit&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;Save&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"updateview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateView</span></code><a class=\"heading-anchor\" href=\"#updateview\"><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.views.generic.edit.UpdateView\">\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\">django.views.generic.edit.</span></span><span class=\"sig-name descname\"><span class=\"pre\">UpdateView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.UpdateView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah tampilan yang memperlihatkan sebuah formulir untuk menyunting sebuah obyek yang ada, memperlihatkan kembali formulir dengan pengesahan kesalahan (jika ada) dan menyimpan perubahan ke obyek. Ini menggunakan sebuah formulir secara otomatis dibangkitkan dari kelas model obyek (meskipun sebuah kelas formulir secara manual ditentukan).</p>\n<p><strong>Ancestors (MRO)</strong></p>\n<p>Tampilan ini mewarisi metode dan atribut dari tampilan berikut:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin\" title=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.BaseUpdateView</span></code></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.ModelFormMixin\" title=\"django.views.generic.edit.ModelFormMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.ModelFormMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.FormMixin\" title=\"django.views.generic.edit.FormMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.FormMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.ProcessFormView\" title=\"django.views.generic.edit.ProcessFormView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.ProcessFormView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Atribut</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.UpdateView.template_name_suffix\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_suffix</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.UpdateView.template_name_suffix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Halaman <code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateView</span></code> diperlihatkan ke permintaan <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code> dari <code class=\"docutils literal notranslate\"><span class=\"pre\">'_form'</span></code>. Sebagai contoh, merubah atribut ini pada <code class=\"docutils literal notranslate\"><span class=\"pre\">'_update_form'</span></code> untuk sebuah tampilan membuat obyek-obyek untuk contoh model <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> akan menyebabkan awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">'myapp/author_update_form.html'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.UpdateView.object\">\n<span class=\"sig-name descname\"><span class=\"pre\">object</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.UpdateView.object\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ketika menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateView</span></code> anda mempunyai akses ke <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code>, yaitu obyek sedang diperbaharui.</p>\n</dd></dl>\n\n<p><strong>Contoh myapp/views.py</strong>:</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.views.generic.edit</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">UpdateView</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\">AuthorUpdate</span><span class=\"p\">(</span><span class=\"n\">UpdateView</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Author</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>\n    <span class=\"n\">template_name_suffix</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;_update_form&#39;</span>\n</code></pre></div>\n<p><strong>Contoh myapp/author_update_form.html</strong>:</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=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">csrf_token</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">form.as_p</span> <span class=\"cp\">}}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;submit&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;Update&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"deleteview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">DeleteView</span></code><a class=\"heading-anchor\" href=\"#deleteview\"><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.views.generic.edit.DeleteView\">\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\">django.views.generic.edit.</span></span><span class=\"sig-name descname\"><span class=\"pre\">DeleteView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.DeleteView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah tampilan yang memperlihatkan sebuah halaman penegasan dan menghapus obyek yang ada. Obyek yang diberikan akan hanya dihapus jika metode permintaan adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code>. Jika tampilan ini diambil melalui <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code>, itu akan memperlihatkan sebuah halaman penegasan yang harus mengandung sebuah formulir yang POST ke URL sama.</p>\n<p><strong>Ancestors (MRO)</strong></p>\n<p>Tampilan ini mewarisi metode dan atribut dari tampilan berikut:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin\" title=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.BaseDeleteView</span></code></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-editing/#django.views.generic.edit.DeletionMixin\" title=\"django.views.generic.edit.DeletionMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.edit.DeletionMixin</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.BaseDetailView</span></code></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/2.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Atribut</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.DeleteView.template_name_suffix\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_suffix</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.DeleteView.template_name_suffix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Halaman <code class=\"docutils literal notranslate\"><span class=\"pre\">DeleteView</span></code> diperlihatkan ke permintaan <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code> dari <code class=\"docutils literal notranslate\"><span class=\"pre\">'_confirm_delete'</span></code>. Sebagai contoh, merubah atribut ini pada <code class=\"docutils literal notranslate\"><span class=\"pre\">'_check_delete'</span></code> untuk sebuah tampilan membuat obyek-obyek untuk contoh model <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> akan menyebabkan awalan <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">'myapp/author_check_delete.html'</span></code>.</p>\n</dd></dl>\n\n<p><strong>Contoh myapp/views.py</strong>:</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.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse_lazy</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.edit</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DeleteView</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\">AuthorDelete</span><span class=\"p\">(</span><span class=\"n\">DeleteView</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Author</span>\n    <span class=\"n\">success_url</span> <span class=\"o\">=</span> <span class=\"n\">reverse_lazy</span><span class=\"p\">(</span><span class=\"s1\">&#39;author-list&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><strong>Contoh myapp/author_confirm_delete.html</strong>:</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=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">csrf_token</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Are you sure you want to delete &quot;<span class=\"cp\">{{</span> <span class=\"nv\">object</span> <span class=\"cp\">}}</span>&quot;?<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;submit&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;Confirm&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>","rootId":"generic-editing-views","toc":[{"title":"FormView","anchor":"formview","children":[]},{"title":"CreateView","anchor":"createview","children":[]},{"title":"UpdateView","anchor":"updateview","children":[]},{"title":"DeleteView","anchor":"deleteview","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/2.2/ref/"},{"docname":"ref/class-based-views/index","title":"API tampilan berdasarkan-kelas siap-pakai","url":"/id/2.2/ref/class-based-views/"}],"prev":{"docname":"ref/class-based-views/generic-display","title":"Tampilan memperlihatkan umum","url":"/id/2.2/ref/class-based-views/generic-display/"},"next":{"docname":"ref/class-based-views/generic-date-based","title":"Generic date views","url":"/id/2.2/ref/class-based-views/generic-date-based/"},"formats":{"html":"/id/2.2/ref/class-based-views/generic-editing/","markdown":"/id/2.2/ref/class-based-views/generic-editing.md","json":"/id/2.2/ref/class-based-views/generic-editing.json"},"source":"https://github.com/django/django/blob/stable/2.2.x/docs/ref/class-based-views/generic-editing.txt","official":"https://docs.djangoproject.com/id/2.2/ref/class-based-views/generic-editing/","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","pt-br","ko","es","el","pl"]}