基于django ManyToMany 使用的注意事项详解


Posted in Python onAugust 09, 2019

使用场景一:

如果在一张表中ManayTOManay字段关联的是自身,也就是出项这样的代码:

ManyToManyField(self)

那么,你需要注意一点,当你采用add方法将一个自身对象添加到该字段时,则自动建立两方的相互关联。

例如:

有一个朋友关系的字段,多对多关联到自身,

friends = models.ManyToManyField('self')

当你采用friends .add()添加对象时,则自动建立双方的关联。

为了禁止这件事情发生,需要添加一个symmetrical参数并设置为False,参考如下:

models.ManyToManyField('self', blank=True, symmetrical=False)

使用场景二:

如果在一张表中有多个ManayTOManay字段关联到相同的另一张表中,则另一张表在反向查询时则无法准确查找,为了解决这个问题,你需要在多对多字段添加一个参数related_name 并命名一个和其它多对多字段不同的名字,例如:

models.ManyToManyField('self', related_name='user_attentions')

参考如下:

有一张表名字叫A

有一张表名字叫B

A 有多个多对多字段关联到B,其中有一个字段related_name值为user_attentions,

当B进行反向查询时,则采用B.user_attentions查询即可

以上这篇基于django ManyToMany 使用的注意事项详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python复制与引用用法分析
Apr 08 Python
Python实现简单字典树的方法
Apr 29 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python如何爬取个性签名
Jun 19 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
Django中create和save方法的不同
Aug 13 Python
django创建超级用户过程解析
Sep 18 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 #Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 #Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 #Python
python操作excel让工作自动化
Aug 09 #Python
python笔记_将循环内容在一行输出的方法
Aug 08 #Python
python中的列表与元组的使用
Aug 08 #Python
详解python中的数据类型和控制流
Aug 08 #Python
You might like
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
python批量下载图片的三种方法
2013/04/22 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
函授本科毕业自我鉴定
2013/10/09 职场文书
三年级学生期末评语
2014/12/26 职场文书
高一语文教学反思
2016/02/16 职场文书
党组织结对共建协议书
2016/03/23 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python