טופס חיפוש
חלק מהיחידה טפסים במסלול ה-Django של Coddy. שיעור 1 מתוך 20.
מבקרים עדיין לא יכולים לחפש בלוח האירועים. טופס הוא אוסף של שדות וכפתור ששולח לכתובת URL את מה שהוקלד.
טופס שרק קורא נתונים משתמש ב-method="get": הדפדפן מוסיף כל שדה למחרוזת השאילתה של כתובת ה-URL, בצורה name=value. מסנן מידות בדף של חנות:
<form method="get">
<select name="size">
<option value="S">Small</option>
<option value="L">Large</option>
</select>
<button type="submit">Show</button>
</form>בחירה ב-Large פותחת את /products/?size=L. ה-name של השדה הוא המפתח, ולכן התצוגה קוראת אותו כמו כל מחרוזת שאילתה: request.GET.get("size", ""), עם ערך ברירת מחדל עבור הדף הרגיל.
אחרי חיפוש הדף נטען מחדש, והתיבה שוב ריקה. כדי להשאיר בה את המילים, מעבירים אותן בחזרה לתבנית וכותבים אותן ב-value של שדה הקלט.
אתגר
קלהוסיפו חיפוש לדף הבית:
- מעל הרשימה שב־
event_list.html, הוסיפו טופס ששולח את השדה שלו בכתובת ה־URL: שדה קלט בשםqוכפתורSearch. - ב־
event_list, הציגו רק את האירועים שהכותרת שלהם מכילה אתq, ללא תלות באותיות גדולות או קטנות. - תיבת החיפוש שומרת את מונח החיפוש שהוזן.
לחצו על Run וחפשו את jazz.
נסו בעצמכם
from django.shortcuts import get_object_or_404, render
from .models import Event
def event_list(request):
events = Event.objects.all()
return render(request, "events/event_list.html", {"events": events})
def event_detail(request, pk):
event = get_object_or_404(Event, pk=pk)
return render(request, "events/event_detail.html", {"event": event})
כל השיעורים ביחידה טפסים
תרגלו בעצמכם: Django אונליין