Bir Arama Formu
Coddy'nin Django Journey'sinin Formlar bölümünün bir parçası. Ders 1 / 20.
Ziyaretçiler henüz etkinlik panosunda arama yapamıyor. Bir form, yazılanları bir URL'ye gönderen alanlar ve bir düğmeden oluşur.
Yalnızca veri okuyan bir formda method="get" kullanılır: tarayıcı her alanı URL'nin sorgu dizesine name=value biçiminde ekler. Bir mağazanın sayfasındaki beden filtresi:
<form method="get">
<select name="size">
<option value="S">Small</option>
<option value="L">Large</option>
</select>
<button type="submit">Show</button>
</form>Large seçildiğinde /products/?size=L açılır. Alanın name değeri anahtardır; bu nedenle görünüm, herhangi bir sorgu dizesi gibi bunu okur: request.GET.get("size", ""); düz sayfa için bir varsayılan değer kullanılır.
Arama yaptıktan sonra sayfa yeniden yüklenir ve kutu tekrar boşalır. İçindeki sözcükleri korumak için bunları şablona geri aktarın ve input'un value değerine yazın.
Görev
KolayAna sayfaya bir arama ekle:
event_list.htmliçindeki listenin üstüne, alanını URL'de gönderen bir form ekle: adıqolan bir giriş alanı ve birSearchdüğmesi.event_listiçinde yalnızca başlığıqiçeren etkinlikleri göster; büyük/küçük harf farkını göz ardı et.- Kutu, aranan metni korur.
Run'a bas ve jazz için ara.
Kendin dene
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})
Formlar bölümündeki tüm dersler
Kendi başına pratik yap: Django playground