Menu
CoddyTech

Contar filas

Parte de la sección Modelos y el panel de administración del Journey de Django de Coddy. Lección 10 de 23.

Para indicar cuántos libros de ciencia ficción tienes, podrías cargarlos todos y contarlos en Python. La base de datos los cuenta más rápido. Cada una de estas expresiones ejecuta una consulta pequeña y devuelve una sola respuesta:

Book.objects.filter(is_read=True).count()    # 1
Book.objects.filter(price__gt=20).exists()   # False
len(Book.objects.all())                      # 9, después de cargar las 9 filas

count() devuelve cuántas filas coinciden. exists() devuelve True cuando coincide al menos una fila y False cuando no coincide ninguna. Ambas van al final de un QuerySet, después de filter() o exclude(). len() da el mismo número que count(), pero solo después de que todas las filas se hayan cargado en Python, lo cual es lento en una tabla grande.

challenge icon

Desafío

Fácil

Reescribe explore.py para imprimir dos líneas:

  1. Science fiction: y cuántos libros de ciencia ficción hay.
  2. Any Tolkien: y si hay un libro de J.R.R. Tolkien en la estantería.

Pulsa «Ejecutar»: la consola muestra Science fiction: 3 y Any Tolkien: True.

Pruébalo tú mismo

from books.models import Book

# 1. Ciencia ficción: cuántos libros de ciencia ficción hay

# 2. Algún libro de Tolkien: si hay un libro de J.R.R. Tolkien en la estantería
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Modelos y el panel de administración

Practica por tu cuenta: Playground de Django