Menu
CoddyTech

Atualizar e excluir

Parte da seção Models e o Admin do Journey de Django da Coddy. Lição 12 de 23.

Os preços mudam e os livros saem da prateleira. Para alterar um livro, defina seu atributo e chame save(); sem save(), a tabela mantém o valor antigo. Para alterar várias linhas de uma vez, chame update() em um QuerySet. Ele executa um UPDATE e retorna quantas linhas foram alteradas. delete() funciona da mesma forma e retorna quantas linhas foram excluídas, no total e por modelo:

Book.objects.filter(year__lt=1900).update(price="5.00")   # 2
Book.objects.filter(price__gt=14).delete()   # (1, {'books.Book': 1})

Ambos atuam exatamente nas linhas do QuerySet, então filtre primeiro. Book.objects.update(is_read=True) marca todos os livros, e nenhum dos métodos pede confirmação antes de agir.

challenge icon

Desafio

Fácil

Em explore.py, acima do último print:

  1. Dune está em promoção: defina seu preço como 7.99.
  2. Marque todos os livros de Jane Austen como lidos, em uma consulta.
  3. Exclua todos os livros de mistério, em uma consulta.

Pressione Run. O Console mostra 7 books on the shelf, e a aba Data mostra Dune por 7.99 e nenhum livro de mistério.

Experimente você mesmo

from books.models import Book

# 1. Dune está em promoção: defina seu preço como 7.99.

# 2. Marque todos os livros de Jane Austen como lidos.

# 3. Doe todos os livros de mistério.

print(Book.objects.count(), "books on the shelf")
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Models e o Admin

Pratique por conta própria: Playground de Django