
解锁的Django ORM的核心用法系列(二)
Sprite
发表于 2023年11月18日
欢迎回到我们对Django ORM讲解系列的第二部分。在第一部分中,我们深入探讨了基本命令、模型和基本对象操作。在这一续篇中,我们将更深入地了解Django ORM提供的强大功能。我们将涵盖高级查询技术、处理多对多关系以及优化数据检索。
part 3: 解锁的Django ORM的核心用法系列(三)
比较
-
小于 -
小于或等于 -
大于 -
大于等于
books = Book.objects.filter(publication_date__gte=date(2023, 10, 12))
print(books)
# <QuerySet [<Book: Python From Zero to Hero (596894049686)>]>
包含
contains
方法与 filter
方法。books = Book.objects.filter(title__contains="Pyt")
print(books)
# <QuerySet [<Book: Python From Zero to Hero (596894049686)>]>
排序
books = Book.objects.order_by("-publication_date")
print(books)
# <QuerySet [<Book: Python From Zero to Hero (596894049686)>, <Book: Javascript Mastery ()>]>
for book in books:
print(book.publication_date)
# 2023-10-12
# 2022-05-06
将对象转换为字典
contributors = Contributor.objects.all()
print(contributors.values())
排除
exclude
方法。contributors = Contributor.objects.exclude(first_name="Giovanni")
print(contributors)
在另一张表中搜索
books = Book.objects.filter(publisher__name="Oreilly")
print(books)
# <QuerySet [<Book: Python From Zero to Hero (596894049686)>]>
在另一张表中搜索(反向)
publishers = Publisher.objects.get(book__title="Python From Zero to Hero")
print(publishers)
Previous Post
解锁的Django ORM的核心用法系列(一)评论已关闭。