基于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做简单的字符串匹配详解
Mar 21 Python
python万年历实现代码 含运行结果
May 20 Python
Python标准库之itertools库的使用方法
Sep 07 Python
Python温度转换实例分析
Jan 17 Python
python如何在循环引用中管理内存
Mar 20 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
Python 分享10个PyCharm技巧
Jul 13 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
浅谈Python中的字符串
Jun 10 Python
python如何随机生成高强度密码
Aug 19 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
Jul 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编程每天必学之验证码
2016/03/03 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
动手学习无线电
2021/03/10 无线电
js中cookie的使用详细分析
2008/05/28 Javascript
javascript globalStorage类代码
2009/06/04 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
django框架使用方法详解
2019/07/18 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
微博营销计划书
2014/01/10 职场文书
推荐信格式范文
2014/05/09 职场文书
深入理解 Golang 的字符串
2022/05/04 Golang