Menu
CoddyTech

创建行

本课属于 Coddy Django 学习旅程的“模型和管理后台”单元。第 7 课,共 23 课。

你的书架需要新书,而且你永远不必编写数据库使用的语言 SQL。每个模型都有 Book.objects,也就是它的管理器:它的方法会读取和写入数据表。Django 的 ORM(对象关系映射器)会把这些调用转换成 SQL。在本章中,你将在 explore.py 中编写 ORM 代码。“运行”会添加 9 本书,然后像运行 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():添加 Andy Weir 创作的 Project Hail Mary,年份为 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 在线编辑器