基于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 相关文章推荐
JPype实现在python中调用JAVA的实例
Jul 19 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
Python Json序列化与反序列化的示例
Jan 31 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
May 24 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
Python中函数的返回值示例浅析
Aug 28 Python
Django分组聚合查询实例分享
Apr 29 Python
python 安装移动复制第三方库操作
Jul 13 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
python如何构建mock接口服务
Jan 28 Python
用python批量解压带密码的压缩包
May 31 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字符串截取问题
2006/11/28 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
jquery图片切换插件
2015/03/16 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Python网络编程 Python套接字编程
2017/09/13 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
利用python画出AUC曲线的实例
2020/02/28 Python
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
成人大专生实习期的自我评价
2013/10/02 职场文书
迟到检讨书大全
2014/01/25 职场文书
农贸市场管理制度
2014/01/31 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
新教师个人总结
2015/02/06 职场文书