Tampilan penyuntingan umumΒΆ
Tampilan berikut digambarkan pada halaman ini dan menyediakan sebuah dasar untuk menyunting isi:
django.views.generic.edit.FormView
django.views.generic.edit.CreateView
django.views.generic.edit.UpdateView
django.views.generic.edit.DeleteView
lihat juga
messages framework megnandung SuccessMessageMixin
, yang memfasilitasi pesan-pesan disajikan mengenai keberhasilan pengajuan formulir.
Catatan
Beberapa dari contoh-contoh pada halaman ini menganggap bahwa sebuah model Author
telah ditentukan sebagai berikut di myapp/models.py
:
from django.db import models
from django.urls import reverse
class Author(models.Model):
name = models.CharField(max_length=200)
def get_absolute_url(self):
return reverse('author-detail', kwargs={'pk': self.pk})
FormView
ΒΆ
-
class
django.views.generic.edit.
FormView
ΒΆ Sebuah tampilan yang memperlihatkan sebuah formulir. Pada kesalahan, memperlihatkan kembali formulir dengan pengesahan kesalahan; pada pengalihan sukses ke URL baru.
Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
django.views.generic.base.TemplateResponseMixin
django.views.generic.edit.BaseFormView
django.views.generic.edit.FormMixin
django.views.generic.edit.ProcessFormView
django.views.generic.base.View
Contoh myapp/forms.py:
from django import forms class ContactForm(forms.Form): name = forms.CharField() message = forms.CharField(widget=forms.Textarea) def send_email(self): # send email using the self.cleaned_data dictionary pass
Contoh myapp/views.py:
from myapp.forms import ContactForm from django.views.generic.edit import FormView class ContactView(FormView): template_name = 'contact.html' form_class = ContactForm success_url = '/thanks/' def form_valid(self, form): # This method is called when valid form data has been POSTed. # It should return an HttpResponse. form.send_email() return super().form_valid(form)
Contoh myapp/contact.html:
<form method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Send message"> </form>
CreateView
ΒΆ
-
class
django.views.generic.edit.
CreateView
ΒΆ Sebuah tampilan yang menampilkan sebuah formulir untuk membuat sebuah obyek, memperlihatkan kembali formulir dengan pengesahan kesalahan (jika ada) dan menyimpan obyek.
Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.base.TemplateResponseMixin
django.views.generic.edit.BaseCreateView
django.views.generic.edit.ModelFormMixin
django.views.generic.edit.FormMixin
django.views.generic.detail.SingleObjectMixin
django.views.generic.edit.ProcessFormView
django.views.generic.base.View
Atribut
-
template_name_suffix
ΒΆ Halaman
CreateView
diperlihatkan ke permintaanGET
menggunakantemplate_name_suffix
dari'_form'
. Sebagai contoh, merubah atribut ini pada'_create_form'
untuk sebuah tampilan membuat obyek-obyek untuk contoh modelAuthor
akan menyebabkan awalantemplate_name
menjadi'myapp/author_create_form.html'
.
-
object
ΒΆ Ketika menggunakan
CreateView
anda mempunyai akses keself.object
, yaitu obyek sedang dibuat. Jika obyek belum dibuat, nilai akan menjadiNone
.
Contoh myapp/views.py:
from django.views.generic.edit import CreateView from myapp.models import Author class AuthorCreate(CreateView): model = Author fields = ['name']
Contoh myapp/author_form.html:
<form method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Save"> </form>
UpdateView
ΒΆ
-
class
django.views.generic.edit.
UpdateView
ΒΆ 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).
Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.base.TemplateResponseMixin
django.views.generic.edit.BaseUpdateView
django.views.generic.edit.ModelFormMixin
django.views.generic.edit.FormMixin
django.views.generic.detail.SingleObjectMixin
django.views.generic.edit.ProcessFormView
django.views.generic.base.View
Atribut
-
template_name_suffix
ΒΆ Halaman
UpdateView
diperlihatkan ke permintaanGET
menggunakantemplate_name_suffix
dari'_form'
. Sebagai contoh, merubah atribut ini pada'_update_form'
untuk sebuah tampilan membuat obyek-obyek untuk contoh modelAuthor
akan menyebabkan awalantemplate_name
menjadi'myapp/author_update_form.html'
.
-
object
ΒΆ Ketika menggunakan
UpdateView
anda mempunyai akses keself.object
, yaitu obyek sedang diperbaharui.
Contoh myapp/views.py:
from django.views.generic.edit import UpdateView from myapp.models import Author class AuthorUpdate(UpdateView): model = Author fields = ['name'] template_name_suffix = '_update_form'
Contoh myapp/author_update_form.html:
<form method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Update"> </form>
DeleteView
ΒΆ
-
class
django.views.generic.edit.
DeleteView
ΒΆ Sebuah tampilan yang memperlihatkan sebuah halaman penegasan dan menghapus obyek yang ada. Obyek yang diberikan akan hanya dihapus jika metode permintaan adalah
POST
. Jika tampilan ini diambil melaluiGET
, itu akan memperlihatkan sebuah halaman penegasan yang harus mengandung sebuah formulir yang POST ke URL sama.Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.base.TemplateResponseMixin
django.views.generic.edit.BaseDeleteView
django.views.generic.edit.DeletionMixin
django.views.generic.detail.BaseDetailView
django.views.generic.detail.SingleObjectMixin
django.views.generic.base.View
Atribut
-
template_name_suffix
ΒΆ Halaman
DeleteView
diperlihatkan ke permintaanGET
menggunakantemplate_name_suffix
dari'_confirm_delete'
. Sebagai contoh, merubah atribut ini pada'_check_delete'
untuk sebuah tampilan membuat obyek-obyek untuk contoh modelAuthor
akan menyebabkan awalantemplate_name
menjadi'myapp/author_check_delete.html'
.
Contoh myapp/views.py:
from django.urls import reverse_lazy from django.views.generic.edit import DeleteView from myapp.models import Author class AuthorDelete(DeleteView): model = Author success_url = reverse_lazy('author-list')
Contoh myapp/author_confirm_delete.html:
<form method="post">{% csrf_token %} <p>Are you sure you want to delete "{{ object }}"?</p> <input type="submit" value="Confirm"> </form>