基于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 相关文章推荐
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
使用Python生成XML的方法实例
Mar 21 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
python对于requests的封装方法详解
Jan 03 Python
Python基于requests库爬取网站信息
Mar 02 Python
Python基于traceback模块获取异常信息
Jul 23 Python
python raise的基本使用
Sep 10 Python
Python中qutip用法示例详解
Oct 02 Python
python字典按照value排序方法
Dec 28 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 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/08/08 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php fread函数使用方法总结
2019/05/28 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
网络方面基础面试题
2012/11/16 面试题
企业项目策划书
2014/01/11 职场文书
《乌塔》教学反思
2014/02/17 职场文书
交通安全横幅标语
2014/10/07 职场文书
烈士陵园观后感
2015/06/08 职场文书
家长会感言
2015/08/01 职场文书
勤俭节约主题班会
2015/08/13 职场文书
初二数学教学反思
2016/02/17 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技