Django Özel Şablon Etiketleri Ve Filitreleri Oluşturmak


Django’da template içerisinde “{{ }}” veya “{% %}” gibi ifadeler kullanıyoruz. Bu ifadelere genel olarak şablon dili diyebiliriz. Django’da şablo dili etiketleri ve filitreleri yerleşik olarak gelmektedir, fakat bazı durumlarda eksik veya yetersiz kalabiliyor. Bu durumun üstesinden gelmek için, kendi filitremizi ve etiketlerimizi oluşturmaya imkan sağlamaktadır.

Kendimize özel şablon etiketi yaratırken, proje dosyası içerisinde “Templatetags” adlı bir klasör oluşturup, içersinde kesinlikle “__init__.py” adlı boş belgede oluşturmalıyız. Çünkü django bunu paket olarak algıyacaktır.

Kısaca şöyle ifade edebiliriz ;

Yukarıdakı iskelete göre, bizim şablon kodlarımız “poll_extras.py” içerisinde olması gerekemtekdir.

Yazdığımız kodları şablon içerisinde kullanabilir hale getirmek için, {% load poll_extras %} ifadesi kullaniyoruz.

Filitre İşlemleri

{{ argüman | filitre }}” yapısında olan filitrelerdir.

“poll_extrass.py” içerisine girip, şunları yazalım ;

yazacağımız fonksiyonları “register” değişkeni ile, template kütüphanesine kayıt edeceğiz. Kayıtlı olanlar template tarafına doğrudan çağırabilcekler.

Örnek Kullanıma Bakalım

  • @register.filter() filitre işlemleri içindir.

Template Tarafında Çağırıp, Kullanalım

  • Fonksiyonlarda is_safe=True kullanılması önerilmektedir çünkü, gelen veriler sayısal,string veya özel karakter içerebilir, django bunu filitre eder.

Örnek Kullanımı ;

Etiket İşlemleri

{% fonksiyon “argüman” %} veya {% fonksiyon %} şeklinde olan etiketlerdir. Örnek olarak, iimdiki zamanı bize veren bir etiket yazalım.

Örnek Kullanıma Bakalım

  • @register.simple_tag etiket işlemleri içindir.

Template Tarafında Çağırıp, Kullanalım

Çok detaylı anlatma fırsatım olmadı, bir ön bilgi nasıl kullanılır ne iş yarar gibisinden giriş yapmış olduk.

Detaylı kaynak : https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/

Umarım faydalı olmuştur.

Emoji olarak yorumla :)
eh işte! eh işte!
0
eh işte!
Harika Harika
1
Harika
Hahaha! Hahaha!
0
Hahaha!
Vay be! Vay be!
1
Vay be!
Şekilsin Şekilsin
0
Şekilsin
Muhteşem Muhteşem
0
Muhteşem

Django Özel Şablon Etiketleri Ve Filitreleri Oluşturmak

Giriş Yap

Hoşgeldin, sefa getirdin :)

Hesabınız yok mu?
Kayıt Ol

Şifre Sıfırla

Şifreni bidaha unutma lütfen :)

Geri git :
Giriş Yap

Kayıt Ol

Hoşgeldin :)

Geri git :
Giriş Yap