Django - Quick Tips
Rozpoczynam nową serię z drobnymi poradami dotyczącymi Django.
Na początek serii napiszę i omówię dość przydatny templatetag, który ułatwi pracę z paginacją i różnym filtrowaniem/sortowaniem na stronie.
Problem
Na stronie masz paginator, a także sortowanie, bądź filtrowanie treści.
Klikasz, by filtrować treść i chcesz przejść na kolejną stronę, a tu… jesteś co prawda na kolejnej stronie, ale bez wybranego filtrowania.
Template Tag
Przygotowanie
W folderze aplikacji django, gdzie są pliki m.in. views.py
, models.py
tworzymy moduł, czyli tworzymy folder templatetags
a w nim plik __init__.py
, oraz url_tag.py
.
Edycja url_tag.py
|
|
Użycie tagu
By użyć tagu {% url_add %}
, musimy go zarejestrować na początku templatu
{% load url_tag %}
Następnie w przypadku paginacji zamiast:
|
|
wstawiamy:
|
|
Jeśli chcemy powiązać tag z formularzem, by np. łączyć zapytania z filtrowaniem, bądź sortowaniem, to podajemy tag w form action
:
|
|
Dzięki temu adres url może wyglądać następująco:
https://moja-strona.pl/news/?category=3&category=4&page=2