0Pricing
Django Academy · Leçon

Filtrage, recherche et pagination

Rendez les réponses volumineuses de l’API faciles à utiliser.

Filtrage, recherche et pagination est une leçon Django Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Django Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Django Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Big Responses Are a Problem

Returning thousands of rows in one response is slow and unwieldy. DRF gives you filtering, search, and pagination to keep payloads usable.

Why Pagination First

Pagination splits a large list into pages, so clients fetch a slice at a time instead of everything at once.

Turning On Pagination

Set a default pagination class and page size in settings, and every list view starts paginating automatically.

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS':
        'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10,
}

The Paginated Shape

PageNumberPagination wraps results with count, next, and previous links, so clients can walk through pages easily. 📄

Pagination Styles

Pick a style: PageNumberPagination uses page numbers, while LimitOffsetPagination lets clients ask for a limit and offset directly.

Now, Filtering

Filtering narrows results by exact field values, like asking only for books where the author id is 5.

Adding DjangoFilterBackend

Install django-filter, enable DjangoFilterBackend, and list the fields clients may filter on with filterset_fields.

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    filterset_fields = ['author', 'published_year']

Filters as Query Params

Clients filter through the URL query string, so a request like /books/?author=5 returns only that author's books. 🔍

Search vs Filter

SearchFilter does fuzzy text matching across fields, while filtering matches exact values. Search is for free-text queries.

Enabling Search Fields

Add SearchFilter and list the columns to scan in search_fields. Clients then pass a search term with the search query param.

from rest_framework.filters import SearchFilter

class BookViewSet(viewsets.ModelViewSet):
    filter_backends = [SearchFilter]
    search_fields = ['title', 'author__name']

Ordering Results

Add OrderingFilter so clients can sort with ordering=title or ordering=-price for descending order, all from the URL.

Quick Check

Make sure you can tell these tools apart.

Recap: Usable API Responses

You can now slice lists with pagination, narrow them with filters, find text with search, and sort with ordering. Your API stays fast and friendly. 🎉

Questions Fréquemment Posées

La leçon « Filtrage, recherche et pagination » est-elle gratuite ?

Oui — le texte complet de « Filtrage, recherche et pagination » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Django Academy, passe à CoddyKit PRO. Le cours Django Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Filtrage, recherche et pagination » ?

Rendez les réponses volumineuses de l’API faciles à utiliser. Tu pratiques Django Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Django Academy ?

Aucune expérience préalable n'est requise. Django Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Filtrage, recherche et pagination » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Django Academy ?

Oui. Chaque leçon Django Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. ModelViewSet et routeurs
  2. Autorisations et limitation de débit
  3. Authentification par jeton et JWT
  4. Filtrage, recherche et pagination
← Retour à Django Academy