Menu
CoddyTech

Criando registros

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

Sua estante precisa de livros novos, e você nunca escreverá SQL, a linguagem que os bancos de dados falam. Todo modelo tem Book.objects, seu gerenciador: seus métodos leem e gravam na tabela. O ORM (mapeador objeto-relacional) do Django transforma essas chamadas em SQL. Neste capítulo, você escreverá código ORM em explore.py. Ao executar, nove livros são adicionados e, em seguida, o arquivo é executado da mesma forma que python manage.py shell < explore.py faria; o que ele imprime aparece no Console.

Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00")

create() cria uma linha e a salva em uma única etapa; um campo que você deixar de fora recebe seu valor padrão. O mesmo processo em duas etapas, com uma alteração no meio:

silmarillion = Book(title="The Silmarillion", author="J.R.R. Tolkien", year=1977, price="10.50")
silmarillion.is_read = True
silmarillion.save()

Até que save() seja executado, o objeto existe apenas no Python e seu id é None.

challenge icon

Desafio

Fácil

Em explore.py, acima de print, adicione dois livros.

  • Com create(): Project Hail Mary de Andy Weir, ano 2021, preço 12.99, ficção científica. Armazene o valor do gênero, scifi, não o rótulo; obtenha-o da sua classe Genre.
  • Criando um Book e chamando save(): Klara and the Sun de Kazuo Ishiguro, ano 2021, preço 11.50.

Pressione Executar: o Console exibe 11 books on the shelf.

Experimente você mesmo

from books.models import Book

# Adicione os dois livros aqui.


print(Book.objects.count(), "books on the shelf")

Todas as lições de Models e o Admin

Pratique por conta própria: Playground de Django