Formularz wyszukiwania
Część sekcji Formularze ścieżki Django w Coddy. Lekcja 1 z 20.
Odwiedzający nie mogą jeszcze wyszukiwać wydarzeń na tablicy. Formularz to zestaw pól i przycisk, który wysyła wpisane dane pod adres URL.
Formularz, który tylko odczytuje dane, używa method="get": przeglądarka umieszcza każde pole w ciągu zapytania adresu URL, w postaci name=value. Filtr rozmiaru na stronie sklepu:
<form method="get">
<select name="size">
<option value="S">Small</option>
<option value="L">Large</option>
</select>
<button type="submit">Show</button>
</form>Wybranie opcji Large otwiera /products/?size=L. Atrybut name pola jest kluczem, więc widok odczytuje go tak jak każdy ciąg zapytania: request.GET.get("size", ""), z wartością domyślną dla zwykłej strony.
Po wyszukiwaniu strona ładuje się ponownie, a pole jest znów puste. Aby zachować wpisane w nim słowa, przekaż je z powrotem do szablonu i wpisz je do atrybutu value pola.
Wyzwanie
ŁatwyDodaj wyszukiwanie na stronie głównej:
- Nad listą w pliku
event_list.htmlumieść formularz, który wysyła wartość pola w adresie URL: pole wejściowe o nazwieqi przyciskSearch. - W
event_listwyświetlaj tylko te wydarzenia, których tytuł zawieraq, bez rozróżniania wielkości liter. - Pole zachowuje wpisaną wartość.
Naciśnij Run i wyszukaj jazz.
Spróbuj swoich sił
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})
Wszystkie lekcje w sekcji Formularze
1Formularze HTML
Formularz wyszukiwaniaFormularz POSTPrzekierowanie po POSTPoćwicz samodzielnie: Edytor online Django