טופס 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"]אתגר
קלתנו לטופס של Django לבדוק את האירוע החדש.
- ב־
events/forms.py, כתבו אתEventForm:titleו־placeכשדות טקסט באורך של עד 100 תווים, ואתdateכשדה תאריך. - ב־
new_event, בנו את הטופס מתוךrequest.POST. אם הוא תקין, צרו את האירוע מתוךform.cleaned_dataוהפנו אליו. אם לא, הגדירו אתerrorלערךPlease check the form.
שלחו את הטופס ללא תאריך: תראו את ההודעה Please check the form.
נסו בעצמכם
from django import forms
כל השיעורים ביחידה טפסים
2טפסי Django
טופס Djangoיצירת טופסתרגלו בעצמכם: Django אונליין