W większości przypadków podczas definiowania adresów url z dodatkowymi parametrami wykorzystujemy schemat z pytania nr 2: nazwa parametru (np. pk
) poprzedzona dwukropkiem i typem zmiennej, a całość opakowana w znaczniki <>
, np: <int:pk>, <uuid:pk> .
Pierwszy przykład pozwala nam podać jako parametr pk
liczbę, zaś drugi – identyfikator UUID.
Co ciekawe, Django oferuje nam w takiej sytuacji (tylko i aż) 5 typów zmiennych, które powinny spełniać większość wymagań programistów:
int
– dowolna liczba całkowita,
str
– dowolny niepusty string z wyłączeniem separatora ścieżki '/',
slug
– dowolny ciąg znaków zawierający litery, cyfry oraz myślnik i podkreślnik, np: przykladowy-slug
,
uuid
– ciąg znaków typu UUID, czyli zawierający grupy znaków rozdzielone myślnikami. Traktowany później przez Django jak zmienna typu UUID (w odróżnieniu od typu slug
),
path
– dowolny niepusty string, z uwględnieniem separatora ścieżki '/'
.
Okazuje się jednak, że w niektórych sytuacjach musimy ograniczyć dopuszczalny zakres danych i żadna z powyższych opcji nie jest wystarczająca.
Co zrobić w takim przypadku?
Bardzo ciekawy blog!
Dzięki! Naprawdę miło to słyszeć 😉
W warunku if value >= 1996 or value <= 2020 nie powinno być and?
O faktycznie, małe przeoczenie 😉
Dziękujemy za czujność i już poprawiamy 😉