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")

 

转载于:https://www.cnblogs.com/lxfpy/p/10889819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值