前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django之ORM 外键关联(三)

Django之ORM 外键关联(三)

作者头像
小团子
发布2019-07-18 11:20:59
2.1K0
发布2019-07-18 11:20:59
举报
文章被收录于专栏:数据云团数据云团

Django 的 ORM 是创建 SQL 去查询和操作数据库的一个 Python 式的方式。

  • ForeignKey
  • ManyToManyField

<1> ForeignKey 操作

正向查找

  • 对象查找(跨表)

语法:

对象.关联字段.字段

示例:

  • 字段查找(跨表)

语法:

关联字段__字段

示例:

反向操作

  • 对象查找

语法:

obj.表名_set

示例:

  • 字段查找

语法:

表名__字段

示例:

<2> ManyToManyField

class RelatedManager

"关联管理器"是在一对多或者多对多的关联上下文中使用的管理器。

它存在于下面两种情况:

  • 外键关联的反向查询
  • 多对多关联

当 . 点后面的对象可能存在多个的时候就可以使用以下的方法。

方法:

① create()

创建一个新的对象,保存对象,并将它添加到关联对象集之中,返回新创建的对象。

② add()

把指定的 model 对象加到关联对象集中。

  • 添加对象
  • 添加 id

③ set()

更新 model 对象的关联对象。

④ remove()

从关联对象集中移除执行的 model 对象

⑤ clear()

从关联对象集中移除一切对象。

注意:

对于 ForeignKey 对象,clear() 和 remove() 方法仅在 null=True 时存在。

举个例子:

ForeignKey 字段没设置 null=True 时,

没有 clear() 和 remove() 方法

对于所有类型的关联字段,add()、create()、remove()、clear() 和 set() 都会马上更新数据库。在关联的任何一端,都不需要再调用 save() 方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档