Django’da QuerySet’ler 2 – Filtreleme

Queryset’lerde alınan veri üzerinde filtreleme işlemi aşağıdaki örnekte olduğu gibi yapılabilir.

kisiler = Kisi.objects.all()
kisiler.filter(isim='Ahmet')


Zincirleme filtre de aşağıdaki gibidir.

kisiler = kisiler.filter(yas=20)
kisiler = kisiler.filter(isim__startswith='A')


Dikkat edilmesi gereken nokta bu query’ler çalıştırıldığında veritabanı ile herhangi bir bağlantı kurulmamasıdır (şu ana kadar sadece veriyi çekecek olan query’i oluşturduğumuzu düşünebilirsiniz). Bağlantı queryset’ler içerisindeki bilgiye ulaşılmaya çalışıldığında kurulur.

kisiler = Kisi.objects.filter(isim__startswith='A')
kisiler = kisiler.filter(soyad__contains='E')
for kisi in kisiler:
print kisi.isim


Yukarıdaki kod çalıştırıldığında belirtilen filtreler ile getirilen sonuçları ekrana yazar. Bu sırada veritabanı ile sadece bir kere bağlantı kurulur.

Leave a Reply

Your email address will not be published. Required fields are marked *