Menu
CoddyTech

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.

challenge icon

Görev

Kolay

Ana sayfaya bir arama ekle.

  1. event_list.html dosyasında, <ul class="events"> etiketinin üstüne, method="get" içeren; q adlı bir giriş alanı ve Search düğmesi bulunan bir form ekle.
  2. event_list içinde, başlığında q bulunan etkinlikleri büyük/küçük harf duyarlılığı olmadan tut.
  3. Arama kutusunda Meetup aramasının kalması için, giriş alanının value değeri olarak şablona q değ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