בדיקת שדה אחד
חלק מהיחידה טפסים במסלול ה-Django של Coddy. שיעור 10 מתוך 20.
הטופס מקבל אירוע שתאריכו בשנה שעברה. הבדיקות המובנות של Django מכירות טיפוסים ומגבלות, אך לא את הכללים של האתר שלך. כלל משלך לגבי שדה אחד מוגדר במתודה בשם clean_ בתוספת שם השדה. טופס הרשמה ששומר את השם admin לצוות:
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() קוראת למתודה אחרי הבדיקות של השדה עצמו, ולכן הערך כבר הומר: DateField מחזיר תאריך. העלאת forms.ValidationError דוחה את השדה, וההודעה מופיעה לידו.
המתודה חייבת להחזיר את הערך: מה שהיא מחזירה נכנס אל cleaned_data. בלי return, הערך הופך ל־None.
אתגר
קלב־EventForm, דחה תאריך שקודם להיום עם ההודעה The date cannot be in the past. אירוע שמתקיים היום הוא בסדר.
הוסף אירוע שתאריך קיומו היה אתמול, בפורמט כמו 2026-10-30: תראה את The date cannot be in the past.
נסו בעצמכם
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)
כל השיעורים ביחידה טפסים
2טפסי Django
טופס Djangoיצירת טופסתרגלו בעצמכם: Django אונליין