基于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
投稿

猜你喜欢

  • 什么是gzip,人肉gzip?

    2008-11-20 13:01:00
  • 细化解析:SQL Server 2000 的各种版本

    2009-02-05 15:41:00
  • Bootstrap实现圆角、圆形头像和响应式图片

    2023-08-12 07:16:59
  • python自动统计zabbix系统监控覆盖率的示例代码

    2023-11-14 08:23:03
  • 带你深入了解Access数据库的4种安全方式

    2008-11-28 14:34:00
  • selenium在scrapy中的使用代码

    2021-11-24 09:34:16
  • aws 通过boto3 python脚本打pach的实现方法

    2021-09-14 23:33:19
  • Oracle 下医嘱执行函数

    2009-03-02 10:49:00
  • Python 剪绳子的多种思路实现(动态规划和贪心)

    2021-07-03 18:43:41
  • Python实现统计给定字符串中重复模式最高子串功能示例

    2023-07-22 23:42:44
  • Python使用pdb调试代码的技巧

    2022-11-18 04:36:06
  • 在Docker上开始部署Python应用的教程

    2023-11-13 12:38:37
  • 设计提升满意度

    2010-05-16 15:00:00
  • 关于python通过新建环境安装tfx的问题

    2022-06-28 19:47:21
  • 详解Python如何优雅地解析命令行

    2021-02-16 01:53:59
  • Python对象类型及其运算方法(详解)

    2023-08-30 09:11:59
  • python 全角半角互换的实现示例

    2021-02-03 20:30:52
  • python简单图片操作:打开\\显示\\保存图像方法介绍

    2021-03-29 15:52:28
  • MySQL字符集查看方法

    2010-12-14 15:14:00
  • 详解Python常用标准库之os模块与shutil模块

    2023-06-13 04:19:20
  • asp之家 网络编程 m.aspxhome.com