基于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编写一个模仿CPU工作的程序
Apr 16 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
Python 静态方法和类方法实例分析
Nov 21 Python
python如何使用Redis构建分布式锁
Jan 16 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
python实现人脸签到系统
Apr 13 Python
Python叠加矩形框图层2种方法及效果
Jun 18 Python
keras输出预测值和真实值方式
Jun 27 Python
python 合并多个excel中同名的sheet
Jan 22 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 Python
Python初学者必备的文件读写指南
Jun 23 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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
python实现简单的文字识别
2018/11/27 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
Python之多进程与多线程的使用
2021/02/23 Python
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
逻辑链路控制协议
2016/10/01 面试题
婚前财产公证书
2014/04/10 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS