我正在开发一个 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(使用前将#替换为@)