27 Mayıs 2014 Salı

Filtre Oluşturmak

Daha önce Filtreler yazısında önemli filtrelerin kullanımından bahsetmiştik. Bu yazımızda ise basit bir şekilde kendi filtremizi yazmaktan bahsedeceğiz. Bir proje oluşturuyoruz ve bu proje içerisinde filtre adında bir uygulama oluşturuyoruz. Bu uygulamaya ait filtreleri uygulama içerisindeki templatetags dizini oluşturarak içerisinde oluşturacağız. Yani uygulama yapısı şu şekilde olacak.
filtre/
      templatetags/
                  __init__.py
                  filtre_adi.py  
      __init__.py
      admin.py
      models.py
      ...
templatetags dizini içerisinde __init__.py dosyasını oluşturmayı unutmayın. Bu dizin içerisinde oluşturduğumuz filtre_adi.py dosyası içerisinde kendi filtrelerimizi yazabileceğiz. Şimdi ilk önce templatetags dizini içerisinde __init__.py ve filtrelerim.py dosyalarını oluşturuyoruz. Ardından filtrelerim.py dosyasını açarak içine şu kodları yazıyoruz.
from django import template
register = template.Library()


def ekle(sayi, deger):
    return sayi+deger

register.filter('ekle',ekle)

Gerekli tanımaları yaptıktan sonra ekle adından çok basit bir fonksiyon tanımladık. Bu fonksiyon aldığı iki sayıyı toplayarak geri döndürüyor. Şimdi bu ekle filtresini şablon içerisinde kullanacağız. İlk bir görünüm oluşturalım.
def filtreler(request):
    sayi = 10
    return render_to_response('filtreler.html',locals())
Oluşturduğunuz filtreler.html içerisine şu kodları yazın.
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

{% load filtrelerim %}

{{ sayi|ekle:5}}

</body>
</html>
Filtreyi oluşturmadan önce filtrelerim.py dosyasını içeri yüklüyoruz. Ardından {{ sayi|ekle:5}} satırı ile filtreyi kullanıyoruz. Burada sayi, filtreye gönderilen ilk değer ekle filtre adı ve 5 filtreye gönderilen ikinci değerdir. Ekran çıktısı olarak 15 alacaksınız. Filtrelerin oluşturulması bu şekildedir. Bu yolu kullanarak uygulamalarınızda istediğiniz filtreleri oluşturabilirsiniz.
Kaynakça

0 yorum :

Yorum Gönderme