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

אתגר

קל

תנו לטופס של Django לבדוק את האירוע החדש.

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

שלחו את הטופס ללא תאריך: תראו את ההודעה Please check the form.

נסו בעצמכם

from django import forms

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

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