Własny filrt w szablonie Django
W szablonach Django dostępny jest spory zestaw filtrów. Używa się ich prosto:
{{ obiekt|filrt }}
{{ obiekt|filtr:"parametr" }}
Dostępne filtry pokrywają większość popularnych sytuacji, ale może czasem przydać się zrobienie jakiegoś własnego.
Wejdź do katalogu swojej aplikacji w której chcesz używać filtru. Stwórz katalog templatetags, a w nim pliki init.py i twoja_nazwa.py.
mkdir templatetags touch templatetags/__init__.py touch templatetags/TWOJANAZWA.py
w pliku TWOJANAZWA.py:
from django import template register = template.Library() @register.filter("nazwa_naszego_filtra") def nazwa_naszego_filtra(value): #tutaj jakies operacje. return cośtam
Jak pisałem wcześniej, filtr może przyjmować parametr:
def nazwa_naszego_filtra(value, argument): #tutaj jakies operacje. return value + argument
Przed użyciem naszego filtra w szablonie ładujemy go za pomocą:
{% load nazwa_filtra %}
i używamy:
{{ obiekt|filtr:"argument" }}
Mam nadzieję, że zbytnio nie namieszałem ;)