基于django ManyToMany 使用的注意事项详解

作者:qq_34159185 时间:2022-10-16 00:29:33 

使用场景一:

如果在一张表中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查询即可

来源:https://blog.csdn.net/qq_34159185/article/details/78450749

标签:django,ManyToMany
0
投稿

猜你喜欢

  • Tornado Web Server框架编写简易Python服务器

    2021-10-18 09:23:52
  • Scratch3.0二次开发之windows环境下打包成exe的流程

    2022-12-31 03:27:34
  • python合并同类型excel表格的方法

    2022-05-08 03:51:52
  • 详解Python列表赋值复制深拷贝及5种浅拷贝

    2022-07-16 16:22:41
  • Python+Pygame制作简易版2048小游戏

    2022-12-01 18:05:03
  • Swift 3.0在集合类数据结构上的一些新变化总结

    2023-10-19 02:35:47
  • python读取excel数据绘制简单曲线图的完整步骤记录

    2022-04-27 10:52:18
  • 基于Tensorflow的MNIST手写数字识别分类

    2023-12-01 11:35:18
  • Python素数检测实例分析

    2021-05-22 02:11:41
  • 基于Python实现一个简单的银行转账操作

    2023-05-29 16:39:26
  • Python读取HTML中的canvas并且以图片形式存入Word文档

    2022-09-03 04:50:33
  • ASP程序代码执行时间统计类

    2007-10-15 12:45:00
  • django之对FileField字段的upload_to的设定方法

    2023-04-23 09:02:30
  • MySQL 5.5.x my.cnf参数配置优化详解

    2024-01-27 02:12:48
  • oracle查看执行最慢与查询次数最多的sql语句

    2024-01-21 05:12:11
  • 链接的提示及打开方式

    2008-07-29 13:09:00
  • matlab读取串口数据并显示曲线的实现示例

    2022-12-17 15:56:17
  • pandas分批读取大数据集教程

    2023-01-13 16:45:32
  • 使用python实现微信小程序自动签到功能

    2021-05-30 10:04:11
  • Python进阶学习之特殊方法实例详析

    2022-03-03 22:15:04
  • asp之家 网络编程 m.aspxhome.com