Menu
CoddyTech

Sebuah Formulir Django

Termasuk bagian Formulir dalam perjalanan Django di Coddy. Pelajaran 5 dari 20.

Kirim formulir tanpa tanggal dan situs akan error: Django tidak dapat mengubah teks kosong menjadi tanggal. Memeriksa setiap field satu per satu akan membutuhkan kode untuk setiap field dan setiap kesalahan.

Formulir Django mendeskripsikan field satu kali, di forms.py, dan setiap field mengetahui nilai yang dapat diterimanya. Formulir pemesanan restoran:

from django import forms


class BookingForm(forms.Form):
    name = forms.CharField(max_length=50)
    day = forms.DateField()
    guests = forms.IntegerField()

Setiap field wajib diisi kecuali kamu menyatakan sebaliknya, dan CharField menghapus spasi terlebih dahulu, jadi nama yang hanya berisi spasi dianggap kosong.

Di view, buat formulir dari data yang diterima dan panggil is_valid(): fungsi ini memeriksa setiap field dan mengembalikan True atau False. Lalu form.cleaned_data menyimpan nilai yang telah dikonversi ke Python, jadi cleaned_data["day"] adalah datetime.date, bukan teks:

form = BookingForm(request.POST)
if form.is_valid():
    day = form.cleaned_data["day"]
challenge icon

Tantangan

Mudah
  • Di events/forms.py, tulis EventForm: title dan place sebagai teks dengan maksimal 100 karakter, date sebagai tanggal.
  • Di new_event, periksa POST menggunakan formulir tersebut. Jika valid, buat event dari nilai yang sudah dikonversi, lalu alihkan. Jika tidak, render halaman dengan error yang diatur ke Please check the form.

Tekan Jalankan dan kirim formulir tanpa tanggal.

Coba sendiri

from django import forms

Semua pelajaran di Formulir

Latihan sendiri: Playground Django