创建行
本课属于 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。
挑战
简单在 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 在线编辑器