8. diel - REST API v Django REST - Limit výsledkov a filtrovania Nové
V predchádzajúcej lekcii, REST API v Django REST - Postman , sme si ukázali, ako môžeme pomocou nástroja Postman testovať back-end.
V tomto Python tutoriále sa budeme zaoberať filtráciou osôb. Do našej Django REST API doplníme samostatné views pre hercov a režisérov, aby sme mohli implementovať požiadavky na vrátenie osôb podľa ich role. Sprevádzkováme tiež možnosť limitovať počet zobrazených výsledkov.
Filtrovanie osôb
Filtrovanie záznamov osôb bude rozdelené na dve funkcionality:
- rozdelenie entít osoby podľa ich role (režisér vs. herec) a
- možnosť obmedzenia počtu zobrazených výsledkov.
PersonViewSet
pridáme podporu pre filtrovanie pomocou
parametrov role
a limit
. Najprv implementujeme
základné filtrovanie a limitáciu výsledkov, následne vytvoríme vlastné
views pre jednotlivé role.
Filtrovanie podľa role a limit
Aby sme udržali našu aplikáciu prehľadnú a minimalizovali logiku vo
views, vytvoríme v zložke api/
podzložku services/
.
Vo vnútri tohto priečinka vytvoríme súbor person_service.py
, v
ktorom definujeme triedu PersonService
.
Doplnenie triedy
PersonService
Táto trieda bude obsahovať statickú metódu
get_filtered_queryset()
, ktorá
...koniec náhľadu článku...
Pokračuj ďalej
Došiel si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Pred kúpou tohto článku je potrebné kúpiť predchádzajúci diel
Obsah článku spadá pod licenciu Premium III, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V Python tutoriále sprevádzkováme filtráciu osôb a vytvoríme views pre jednotlivé role. Naše Django REST API tak bude vedieť vracať iba režisérov či hercov.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.