基于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爬取Coursera课程资源的详细过程
Nov 04 Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
python实现类的静态变量用法实例
May 08 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
Python中enumerate函数代码解析
Oct 31 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
python如何为创建大量实例节省内存
Mar 20 Python
Python代码缩进和测试模块示例详解
May 07 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Django中的JWT身份验证的实现
May 07 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 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调用Webservice实例代码
2011/07/29 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Python Cookie 读取和保存方法
2018/12/28 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
岳父生日宴会答谢词
2014/01/13 职场文书
活动邀请函范文
2014/01/19 职场文书
企业宣传策划方案
2014/05/29 职场文书
申报材料格式
2014/12/30 职场文书
就业意向书范本
2015/05/11 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python
我收到了德劲DE1107
2022/04/05 无线电