אימות מובנה
חלק מהיחידה טפסים במסלול ה-Django של Coddy. שיעור 9 מתוך 20.
אירוע זקוק לתיאור ולמספר מקומות. כל שדה בטופס בודק סוג משלו של ערך, והארגומנטים שלו מוסיפים כללים. כבר פגשת שניים: כל שדה הוא שדה חובה, ו־max_length=100 דוחה כותרת ארוכה יותר.
forms.IntegerField(min_value=1, max_value=5): מספר שלם בין הגבולות.forms.EmailField(): דוחה טקסט שאינו כתובת דוא״ל.required=Falseבכל שדה: אפשר להשאיר אותו ריק.
רכיב ממשק קובע כיצד שדה מוצג: widget=forms.Textarea יוצר תיבת טקסט גדולה. טופס לביקורת על מוצר:
class ReviewForm(forms.Form):
stars = forms.IntegerField(min_value=1, max_value=5)
comment = forms.CharField(widget=forms.Textarea, max_length=500)
nickname = forms.CharField(required=False)שדה טקסט אופציונלי ריק נותן "" בתוך cleaned_data; שדה מספר אופציונלי ריק נותן None. הלולאה בתבנית שלך מציגה שדות חדשים ללא שינוי.
אתגר
קלהוסיפו שני שדות ל־EventForm:
description: טקסט בתיבה גדולה, שאפשר להשאיר ריקה.capacity: מספר שלם של 1 לפחות.
ב־new_event, שמרו את שניהם באירוע. לחצו על Run ופתחו את /events/new/.
נסו בעצמכם
from django import forms
class EventForm(forms.Form):
title = forms.CharField(max_length=100)
date = forms.DateField()
place = forms.CharField(max_length=100)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה טפסים
2טפסי Django
טופס Djangoיצירת טופסתרגלו בעצמכם: Django אונליין