Menu
CoddyTech

Memeriksa Satu Bidang

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

Formulir tersebut menerima acara bertanggal tahun lalu. Aturan bawaan mengetahui tipe dan batasan, bukan situsmu. Aturan buatanmu sendiri tentang satu field ditulis dalam method bernama clean_ ditambah nama field tersebut. Formulir pendaftaran yang menyimpan nama admin untuk staf:

class SignupForm(forms.Form):
    username = forms.CharField(max_length=30)

    def clean_username(self):
        username = self.cleaned_data["username"]
        if username.lower() == "admin":
            raise forms.ValidationError("That name is reserved.")
        return username

is_valid() memanggilnya setelah pemeriksaan field itu sendiri, sehingga nilainya sudah dikonversi: DateField menghasilkan tanggal. Menampilkan forms.ValidationError menolak field tersebut, dan pesannya muncul di bawahnya.

Method tersebut harus mengembalikan nilai: nilai yang dikembalikannya disimpan dalam cleaned_data. Tanpa return, nilainya menjadi None.

challenge icon

Tantangan

Mudah

Di EventForm, tolak tanggal sebelum hari ini dengan pesan The date cannot be in the past. Acara hari ini boleh.

Tekan Jalankan dan tambahkan acara bertanggal kemarin.

Coba sendiri

from django import forms


class EventForm(forms.Form):
    title = forms.CharField(max_length=100)
    date = forms.DateField()
    place = forms.CharField(max_length=100)
    description = forms.CharField(widget=forms.Textarea, required=False)
    capacity = forms.IntegerField(min_value=1)

Semua pelajaran di Formulir

Latihan sendiri: Playground Django