0Pricing
Django Academy · Lección

order_by, slicing y evaluación diferida

Ordene, limite y comprenda cuándo las consultas acceden a la base de datos

order_by, slicing y evaluación diferida es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Put Rows in Order

Database rows have no guaranteed order. Call order_by() to sort a QuerySet by any field you choose.

Book.objects.order_by("title")

Sort Descending

Put a minus sign in front of a field name to reverse the order, so the largest or newest value comes first.

Book.objects.order_by("-year")

Sort by Several Fields

Pass multiple fields to order_by() and Django sorts by the first, then breaks ties with the next.

Book.objects.order_by("author", "-year")

Take the Top Few

Slicing a QuerySet with Python syntax limits how many rows you fetch, perfect for a top-five list.

Book.objects.order_by("-year")[:5]

Slice a Window

Give slicing a start and stop to grab a middle chunk. Django turns it into LIMIT and OFFSET for you. ✂️

Book.objects.all()[10:20]

No Negative Slicing

You cannot use a negative index on a QuerySet. To get the last rows, reverse the order first, then slice.

Book.objects.order_by("-id")[:1]

Queries Are Lazy

Building a QuerySet does not touch the database. Django stays lazy and waits until you really need the data.

qs = Book.objects.filter(published=True)

What Triggers a Query

Evaluation happens when you loop, call list(), or check the length. That moment is when SQL finally runs.

for book in qs:
    print(book.title)

Build Now, Run Later

Laziness lets you chain filters across many lines, and Django still sends just one combined query at the end.

qs = Book.objects.filter(year__gte=2020).order_by("title")

Caching the Results

Once a QuerySet is evaluated, Django caches the rows. Reusing the same variable avoids hitting the database twice.

Slicing Stays Lazy

An unevaluated slice is still lazy, so the LIMIT is added to the SQL instead of trimming rows in Python.

top = Book.objects.order_by("-year")[:3]

Quick Check

You build a filtered QuerySet but never loop or list it. When does the SQL run?

Recap

You did it! order_by() sorts, slicing limits rows in SQL, and lazy evaluation means queries run only when used. ⚡

Preguntas frecuentes

¿La lección «order_by, slicing y evaluación diferida» es gratis?

Sí — el texto completo de «order_by, slicing y evaluación diferida» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.

¿Qué aprenderé en «order_by, slicing y evaluación diferida»?

Ordene, limite y comprenda cuándo las consultas acceden a la base de datos Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Django Academy?

No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «order_by, slicing y evaluación diferida»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Django Academy?

Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. all(), get() y filter()
  2. Búsquedas de campos y exclude()
  3. order_by, slicing y evaluación diferida
  4. values, values_list y count
← Volver a Django Academy