基于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 相关文章推荐
9种python web 程序的部署方式小结
Jun 30 Python
Python json模块使用实例
Apr 11 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
matplotlib绘制动画代码示例
Jan 02 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
Python实现非正太分布的异常值检测方式
Dec 09 Python
python3 使用traceback定位异常实例
Mar 09 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python单元测试之pytest的使用
Jun 07 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无限分类(树形类)
2013/09/28 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
js动态给table添加/删除tr的方法
2013/08/02 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Python中random模块用法实例分析
2015/05/19 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
浅谈Python反射 & 单例模式
2019/03/21 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
numpy.array 操作使用简单总结
2019/11/08 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
Python如何将模块打包并发布
2020/08/30 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
宿舍打麻将检讨书
2014/01/24 职场文书
安全环保演讲稿
2014/08/28 职场文书
教师考核评语大全
2014/12/31 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android