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. Form, yazılanları bir URL'ye gönderen alanlar ve bir düğmeden oluşur.
Yalnızca veri okuyan bir form method="get" kullanır: tarayıcı her alanı URL'nin sorgu dizesine name=value biçiminde ekler. Bir mağaza 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 özelliği anahtardır; bu yüzden görünüm, düz sayfa için varsayılan bir değerle birlikte, herhangi bir sorgu dizesinde olduğu gibi bunu okur: request.GET.get("size", "").
Arama yapıldıktan sonra sayfa yeniden yüklenir ve kutu tekrar boşalır. İçindeki sözcükleri korumak için onları şablona geri aktarın ve giriş alanının value özelliğine yazın.
Görev
KolayAna sayfaya bir arama ekle.
event_list.htmldosyasında,<ul class="events">etiketinin üstüne,method="get"içeren;qadlı bir giriş alanı veSearchdüğmesi bulunan bir form ekle.event_listiçinde, başlığındaqbulunan etkinlikleri büyük/küçük harf duyarlılığı olmadan tut.- Arama kutusunda
Meetuparamasının kalması için, giriş alanınınvaluedeğeri olarak şablonaqdeğerini aktar.
jazz için ara: geriye yalnızca Friday Jazz Night kalır ve kutuda hâlâ jazz yazar.
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