Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Ordering and Slicing | Queries
Django ORM Ninja: Advanced Techniques for Developers

book
Ordering and Slicing

Slicing

Slicing, like Author.objects.all()[:1], retrieves a QuerySet limited to a specified range.

Remember that slicing on QuerySets, like [:1], is performed at the database level, so it's an efficient way to limit the number of results returned by a query.

python
Author.objects.all()[:2]

Returns the first two objects (equivalent to LIMIT 2 in SQL).

python
Author.objects.all()[1:3]

Fetches the second and third objects from the table (akin to OFFSET 1 LIMIT 2 in SQL).

Ordering

To sort a QuerySet, use the order_by() method with the attribute name for ordering. Prepend '-' for descending order.

python
Author.objects.order_by("first_name")

For ascending order ( SELECT * FROM Author ORDER BY first_name;).

python
Author.objects.order_by("-first_name")

For descending order ( SELECT * FROM Author ORDER BY first_name DESC;).

To define multiple ordering criteria in one order_by statement:

python
Author.objects.order_by("first_name", "-last_name")

(SELECT * FROM Author ORDER BY first_name ASC, last_name DESC;).

1. What does the Django query Author.objects.all()[:1] return?

2. How does Django perform slicing on QuerySets like [:1]?

3. What is the SQL equivalent of Author.objects.all()[:2]?

4. How do you sort a QuerySet in ascending order by the 'first_name' field?

5. Which Django query sorts authors first by ascending 'first_name' and then by descending 'last_name'?

question mark

What does the Django query Author.objects.all()[:1] return?

Select the correct answer

question mark

How does Django perform slicing on QuerySets like [:1]?

Select the correct answer

question mark

What is the SQL equivalent of Author.objects.all()[:2]?

Select the correct answer

question mark

How do you sort a QuerySet in ascending order by the 'first_name' field?

Select the correct answer

question mark

Which Django query sorts authors first by ascending 'first_name' and then by descending 'last_name'?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 4
some-alt