基于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之引用和类属性的初步理解
May 15 Python
Python中生成器和yield语句的用法详解
Apr 17 Python
Python探索之pLSA实现代码
Oct 25 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
Python 分享10个PyCharm技巧
Jul 13 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
python对象转字典的两种实现方式示例
Nov 07 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 Python
python 发送get请求接口详解
Nov 17 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 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
PHP编程网上资源导航
2006/10/09 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
实例解析php的数据类型
2018/10/24 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
详解Python3定时器任务代码
2019/09/23 Python
Python谱减法语音降噪实例
2019/12/18 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
GWebs公司笔试题
2012/05/04 面试题
文明演讲稿范文
2014/05/12 职场文书
教师远程研修感悟
2015/11/18 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android