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 usernameis_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.
Tantangan
MudahDi 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
2Formulir Django
Sebuah Formulir DjangoMenggambar FormulirLatihan sendiri: Playground Django