Menu
CoddyTech

Создание записей

Часть раздела Модели и панель администратора путешествия по Django на Coddy. Урок 7 из 23.

На вашей полке нужны новые книги, и вам никогда не придётся писать на SQL — языке, на котором говорят базы данных. У каждой модели есть Book.objects — её менеджер: его методы читают и записывают данные в таблицу. ORM (объектно-реляционный преобразователь) Django превращает эти вызовы в SQL. В этой главе вы пишете код ORM в explore.py. При запуске добавляются девять книг, а затем файл выполняется так же, как при запуске команды python manage.py shell < explore.py, и результат выводится в консоли.

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

create() создаёт строку и сохраняет её за один шаг; если не указать поле, для него будет использовано значение по умолчанию. То же самое в два шага, с изменением между ними:

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

Пока не выполнится save(), объект существует только в Python, а его id равен None.

challenge icon

Задание

Легко

В explore.py, перед print, добавь две книги.

  • С помощью create(): Project Hail Mary автора Andy Weir, год 2021, цена 12.99, научная фантастика. Укажи значение жанра — scifi, а не его метку; возьми его из класса Genre.
  • Создав экземпляр Book и вызвав save(): Klara and the Sun автора Kazuo Ishiguro, год 2021, цена 11.50.

Нажми «Запустить»: в консоли появится 11 books on the shelf.

Попробуйте сами

from books.models import Book

# Добавьте сюда две книги.


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

Все уроки раздела Модели и панель администратора

Потренируйтесь самостоятельно: Песочница Django