基于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格式化输出%s和%d
May 07 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Python使用while循环花式打印乘法表
Jan 28 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
简单了解Python3里的一些新特性
Jul 13 Python
Python小整数对象池和字符串intern实例解析
Mar 21 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
学python爬虫能做什么
Jul 29 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 Python
用ldap作为django后端用户登录验证的实现
Dec 07 Python
python_tkinter弹出对话框创建
Mar 20 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 图片文件上传实现代码
2010/12/29 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
印度购物网站:TATA CLiQ
2017/11/23 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
法学毕业生自我鉴定
2013/11/08 职场文书
发展部经理职责规定
2014/02/22 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
调研汇报材料范文
2014/08/17 职场文书
同意迁入证明模板
2014/10/26 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
导游词格式
2015/02/13 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书