Python学习第130天(Django中ORM一对多的增删改查)
Posted 崆峒山肖大侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习第130天(Django中ORM一对多的增删改查)相关的知识,希望对你有一定的参考价值。
今天回来是早的,但是因为部分原因,差不多9点半才开始看,内容勉强看完,暂时先进行总结一下,实战训练放在明天,同时完成后面的学习。
主要是针对一对多的增删改查,大致记录了一些关键方法和语句。
核心语句:publish = models.ForeignKey(“Publish”)
重点关注两点:外键是谁,关联的是哪张表格
你设置的这个名字publish会在表格创建的时候自动得到新名字publish_id
下面是一些具体的增删改查方法
一、添加记录
#publish_id=2
Book.objects.create(name="linux运维",price=77,pub_date="2017-12-12",publish_id=2)
#publish=object
Book.objects.create(name="GO",price=23,pub_date="2017-05-12",publish=publish_obj)
二、查询记录(通过对象)
正向查询:
book_obj=Book.objects.get(name="python")
pub_obj=book_obj.publish----》书籍对象对应的出版社对象
pub_obj.name
反向查询:
pub_obj = Publish.objects.filter(name="人民出版社")[0]
pub_obj.book_set.all().values("name","price")
查询记录(filter values 双下划线__)
人民出版社出版过的书籍与价格
ret=Book.objects.filter(publish__name="人民出版社").values("name","price")
python这本书出版社的名字
ret2=Publish.objects.filter(book__name="python").values("name")
python这本书出版社的名字
ret3=Book.objects.filter(name="python").values("publish__name")
北京的出版社出版书的名字
ret4=Book.objects.filter(publish__city="北京").values("name")
2017年上半年出版过书的出版社的名字
ret5=Book.objects.filter(pub_date__lt="2017-07-01",pub_date__gt="2017-01-01").values("publish__name")
暂时就这些,明天抓紧点时间。
以上是关于Python学习第130天(Django中ORM一对多的增删改查)的主要内容,如果未能解决你的问题,请参考以下文章