Contenu du cours
Django ORM Ninja: Advanced Techniques for Developers
Django ORM Ninja: Advanced Techniques for Developers
1. Introduction to Django ORM
2. Models, datatypes, and fields
Aggregations
Do you remember that aggregations in SQL are used to compute a single result from a set of input values. Let's remind some common aggregation functions: COUNT, SUM, AVG, MAX, MIN.
At the same time, Aggregation in Django ORM is a powerful tool to perform calculations over query sets, enabling you to summarize or analyze data efficiently. It allows for operations like counting, averaging, summing, etc., across a set of records.
Basic Aggregation Examples
This query counts how many books each author has written.
from django.db.models import Count
author_book_count = Author.objects.annotate(num_books=Count("books"))
Complex Aggregation
Finds the latest publication date for each author.
from django.db.models import Max
latest_book_per_author = Author.objects.annotate(latest_publication=Max("books__publication_date"))
Aggregation with Filters
Aggregates the total pages of all books in the "Fantasy" genre.
total_pages_fantasy = Book.objects.filter(genre__name="fantasy").aggregate(Sum("pages"))
1. What is the primary use of aggregation functions in SQL?
2. What does the following Django ORM query do? Author.objects.annotate(latest_publication=Max('books__publication_date'))
3. Which Django ORM query is used to aggregate the total pages of all books in the 'Fantasy' genre?
Tout était clair ?
Merci pour vos commentaires !
Section 5. Chapitre 3