Lekce 11 - REST API v Django REST - Filtrování filmů
V předchozí lekci, REST API v Django REST - Serializer a ViewSet filmů, jsme pro entitu filmu v našem projektu doplnili serializer, ViewSet a nastavili URL adresy.
V tomto Python tutoriálu se zaměříme na implementaci
filtrování filmů v naší Django REST API.
Umožníme uživateli filtrovat filmy podle herců,
režiséra, žánru a roku
vydání. Stejně jako u filtrování osob přidáme také možnost
omezení počtu výsledků pomocí parametru
limit.
Vytvoření třídy
MovieService
Ve složce api/services/ vytvoříme nový soubor s názvem
movie_service.py. Bude obsahovat třídu MovieService
a její statickou metodu get_filtered_queryset(), která na
základě zadaných parametrů vrátí vyfiltrovaný queryset.
Soubor upravíme do následující podoby:
from ..models import Movie class MovieService: @staticmethod def get_filtered_queryset(director_id=None, actor_id=None, genre=None, from_year=None, to_year=None, limit=None): queryset = Movie.objects.all()
Filtrace podle osob a žánru
V proměnné queryset jsou zatím uloženy všechny
filmy. Pomocí zadaných parametrů je budeme postupně filtrovat.
Rozšíříme proto metodu get_filtered_queryset() o
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit pouze tento kurz
Získej okamžitý přístup ke kurzu bez
časového omezení.
1 220 Kč
Před koupí tohoto článku je třeba koupit předchozí díl
Obsah článku spadá pod licenci Premium III, koupí článku souhlasíš se smluvními podmínkami.
- Přístup k jednotlivým lekcím dle způsobu pořízení.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tutoriálu REST API v Python frameworku Django zprovozníme filtrování filmů pomocí Django ORM a dokončíme tím práci s entitou filmu.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.