Menu
CoddyTech

בדיקת שדה אחד

חלק מהיחידה טפסים במסלול ה-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 username

is_valid() קוראת למתודה אחרי הבדיקות של השדה עצמו, ולכן הערך כבר הומר: DateField מחזיר תאריך. העלאת forms.ValidationError דוחה את השדה, וההודעה מופיעה לידו.

המתודה חייבת להחזיר את הערך: מה שהיא מחזירה נכנס אל cleaned_data. בלי return, הערך הופך ל־None.

challenge icon

אתגר

קל

ב־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)

כל השיעורים ביחידה טפסים

תרגלו בעצמכם: Django אונליין