如何在 Django 中重写相关集的“add”方法

2024-02-08

我正在开发一个 Django 项目,当某些内容添加到某个模型的相关集中时,我想发送一个信号。例如。我们有一个拥有一套收藏品的主人,每次方法owner.collectable_set.add(something)正在接到电话,我想要一个类似的信号collectable_added或者其他的东西。信号对我来说很清楚,但我不知道哪个管理器(?)包含我想要覆盖的“add”方法。

Edit对于 Xavier 提供更多详细信息的请求:您可以轻松覆盖模型的save方法,通过简单地定义它并调用“super-save“因此它可以通过一些额外的功能正确保存。但我想知道在哪里覆盖相关集的add method.

天哪,我想我还没有提供任何进一步的细节,但我认为即使从第一段开始我想做什么也应该很清楚。

Edit 2: This http://docs.djangoproject.com/en/dev/ref/models/relations/#django.db.models.fields.related.RelatedManager.add是我要重写的方法。是否建议这样做,或者您是否建议采用另一种方式来发送信号?


这是我找到的解决方案m2m_changed signal http://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.m2m_changed。我花了相当多的搜索和阅读。此外,我发现延长ManyRelatedManager类,这将是另一种选择。但随着m2m_changed我可以依靠内置函数,这是大多数时候的首选方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Django 中重写相关集的“add”方法 的相关文章

随机推荐

  • 无法编译调用 tgkill 的程序

    我正在尝试编写一个使用 tgkill 向特定线程发送信号的程序 但是每当我用 gcc 编译它时 我都会收到有关 tgkill 未定义引用的错误 我尝试使用 lpthread 进行编译 但没有帮助 我用谷歌搜索了又搜索 但找不到任何答案 我如
  • .NET Excel 文件解析器

    因此 我工作的公司正在寻找一种方法来验证给定的 xls xlsx 文件是否有效 这意味着检查列 行和其他数据 他让我评估 GrapeCity Spread 和 SpreadsheetGear 但我想知道是否还有其他人可以查看其他外部工具的建
  • 如何解析flutter中的map Json列表?

    I have one Json structure with three maps one is list of products then total and tax I have to parse this json structure
  • 如何知道 npm `unzip` 模块何时完成解压文件?

    我正在使用unzip来自 npm 的模块用于提取 zip 存档的内容 我需要知道何时完成提取并且文件已完全写入磁盘 My code fs createReadStream master zip pipe unzip Extract path
  • C++ 中用于分离标头/源的模板专业化的稳健方法是什么

    在中等规模甚至大型复杂项目中 将模板声明和定义分开是有用的 以减少编译时间 然而 在复杂的代码中 程序员的小错误可能会导致不被注意的行为变化 例如调用通用版本而不是专门化版本 例子 由于错过了声明 模板专业化变得不可见 file A hpp
  • 如何将 Emacs 与 Python 结合使用

    我是 emacs 新手 我想使用 emacs 进行 python 开发 我使用的是 Ubuntu 9 10 我对让 emacs 与 python 一起工作感到沮丧 我使用 GNU Emacs 23 1 50 1 x86 64 pc linu
  • 以渐变方式绘制背景颜色

    此代码生成下面的第一个图 water height lt seq 0 5 1 y lt seq 0 1500 length out 6 df lt data frame water height y library ggplot2 ggpl
  • vb.net 中可以实现内联函数吗?

    问题在标题中 我看到的答案假设您正在谈论编译或 JIT 时内联 它们是完全正确的 然而 我听说过的 内联 一词的另一种用法是用于 lambda 表达式之类的东西 在 C 中 例如 public IEnumerable
  • 在 Android 上安装预构建的二进制文件:“未找到”

    我正在尝试在自定义 Android 映像中安装预构建的二进制文件 为此 我已将其复制到新目录中prebuilt android arm 与Android mk文件类似于此 LOCAL PATH call my dir include CLE
  • 进程地址空间与虚拟内存

    根据我阅读几篇文章的理解 我假设进程地址空间 PAS 和虚拟内存 VM 是相同的 难道是我的理解有问题 有人可以解释一下这一点并启发我吗 我很困惑 我知道进程地址空间与 RAM 或物理内存无关 但只是对 PAS 和 VM 感到困惑 Firs
  • 在 pandas 数据框中解析/分割 URL 的 pythonic 方法

    我有一个 df 它在标记为 url 的列中为不同的用户提供了数千个链接 如下所示 https www google com something https mail google com anohtersomething https cal
  • SWT 图像与字符串之间的转换

    我正在尝试将 SWT 图像转换为字符串 反之亦然 至字符串 Display display new Display final Image image new Image display c test png Looks good show
  • iOS 和 Safari 11 WebRTC 不收集 STUN/TURN Trickle ICE 候选者

    在 iOS 11 iPhone 5s 和 iPhone 7 或桌面上使用 Safari 11 时 我的 Web 应用程序无法通过 CoTURN 服务器收集 WebRTC 中继 ICE 候选项 Web 应用程序 建立单向音频 WebRTC 对
  • 如何使用 PythonNET 和 C#.NET 将枚举放入列表中?

    我有一个通过 Python 与 PythonNET 一起使用的 NET 库 但不知道如何将枚举放入列表中 Python 似乎将枚举转换为不适合列表数据类型的整数 这是一个例子 import clr from System Collectio
  • 错误消息“无法安装或运行应用程序。该应用程序需要 GAC 中的 stdole 版本 7.0.3300.0”

    当一位用户尝试运行该应用程序时 我们的 ClickOnce 应用程序将报告 无法安装或运行该应用程序 该应用程序需要 GAC 中的 stdole 版本 7 0 3300 0 有趣的是 GAC http en wikipedia org wi
  • 在ios中获取状态栏的正确颜色

    好吧 我在为状态栏着色时遇到一些麻烦 我有一个非常简单的应用程序 可以在两个视图之间移动 我尝试用此代码为导航控制器的状态栏着色 UINavigationBar appearance setBarTintColor UIColorFromR
  • R Shiny - 在单选按钮中没有选择初始值?

    从文档中 radioButtons inputId 标签 选择 选择 NULL 内联 FALSE 宽度 空 论点 selected最初选择的值 如果未指定则默认为第一个值 但是 你能指定selected参数使得渲染的单选按钮没有选择初始值
  • Haskell 的foldr 函数有多少个参数?

    我是 Haskell 的新手 我正在读这本书 真实世界的哈斯克尔 http book realworldhaskell org read functional programming html fp tailrecursion 在本书的第
  • Python:如何将巨大的文本文件读入内存

    我在配备 1GB RAM 的 Mac Mini 上使用 Python 2 6 我想读取一个巨大的文本文件 ls l links csv file links csv tail links csv rw r r 1 user user 469
  • 如何在 Django 中重写相关集的“add”方法

    我正在开发一个 Django 项目 当某些内容添加到某个模型的相关集中时 我想发送一个信号 例如 我们有一个拥有一套收藏品的主人 每次方法owner collectable set add something 正在接到电话 我想要一个类似的