ORM之ForeignKey操作

ForeignKey操作

数据量比较大,不会使用FK,允许出现数据冗余。

正向查找

对象查找(跨表)

语法:

对象.关联字段.字段

示例:

book_obj = models.Book.objects.first()  # 第一本书对象
print(book_obj.publisher)               # 得到这本书关联的出版社对象
print(book_obj.publisher.name)          # 得到出版社对象的名称

字段查找(跨表)

语法:

关联字段__字段

示例:

print(models.Book.objects.filter(id=1)[0].values_list("publisher__name"))
print(models.Book.objects.values_list("publisher__name"))

反向操作

对象查找

语法:

obj.表名_set

示例:

publisher_obj = models.Publisher.objects.first()  # 找到第一个出版社对象
books = publisher_obj.book_set.all()              # 找到第一个出版社出版的所有书
titles = books.values_list("title")               # 找到第一个出版社出版的所有书的书名

字段查找

语法:

表名__字段

示例:

titles = models.Publisher.objects.values_list("book__title")

 

posted @ 2019-05-19 16:56  load晴天  阅读(560)  评论(0编辑  收藏  举报