基于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 文件与目录操作
Dec 24 Python
python构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
python根据距离和时长计算配速示例
Feb 16 Python
Python的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
Feb 07 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
编写python代码实现简单抽奖器
Oct 20 Python
python 匿名函数与三元运算学习笔记
Oct 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 xml 入门学习资料
2011/01/01 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
ASP Json Parser修正版
2009/12/06 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
js new Date()实例测试
2019/10/31 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
Python实例一个类背后发生了什么
2016/02/09 Python
Python Socket传输文件示例
2017/01/16 Python
python执行精确的小数计算方法
2019/01/21 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python实现远程控制电脑
2019/05/23 Python
Python turtle库的画笔控制说明
2020/06/28 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
给领导的检讨书
2014/02/16 职场文书
城管综合整治方案
2014/05/01 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
企业安全生产检查制度
2015/08/06 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS