Menu
CoddyTech

טופס Django

חלק מהיחידה טפסים במסלול ה-Django של Coddy. שיעור 5 מתוך 20.

שולחים את הטופס בלי תאריך, והאתר קורס: Django לא יכול להמיר טקסט ריק לתאריך. בדיקה ידנית של כל שדה תדרוש כתיבת קוד לכל שדה ולכל טעות.

טופס Django מתאר את השדות פעם אחת, בקובץ forms.py, וכל שדה יודע מה הוא מקבל. טופס הזמנה במסעדה:

from django import forms


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

כל שדה הוא שדה חובה, אלא אם מציינים אחרת, ו-CharField מסיר רווחים תחילה, כך ששם שמכיל רווחים בלבד נחשב לריק.

בתצוגה, יוצרים את הטופס מהנתונים שהתקבלו וקוראים ל-is_valid(): הוא בודק כל שדה ומחזיר True או False. לאחר מכן, form.cleaned_data מכיל את הערכים שהומרו ל-Python, כך ש-cleaned_data["day"] הוא datetime.date, ולא טקסט:

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

אתגר

קל
  • ב־events/forms.py, כתבו את EventForm: את title ואת place כטקסט של עד 100 תווים, ואת date כתאריך.
  • ב־new_event, בדקו באמצעותו את POST. אם הטופס תקין, צרו את האירוע מהערכים שהומרו והפנו מחדש. אם לא, הציגו את הדף כאשר error מוגדר ל־Please check the form.

לחצו על Run ושלחו את הטופס ללא תאריך.

נסו בעצמכם

from django import forms

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

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