Djangos m2m_changed 触发器未正确触发

Djangos m2m_changed trigger doesn't trigger properly

我有一个如下所示的模型,我希望在每次 user_ids 字段发生变化时触发一个方法。使用 post_save 信号显然没有做任何事情,因为 ManyToMany 关系在这方面很特殊。

class Lease(models.Model):
    unit = models.ForeignKey(Unit, on_delete=models.CASCADE)
    user_ids = models.ManyToManyField('user.User')

如下使用m2m_changed触发器也没有做任何事情,这让我感到困惑。我真的不明白这段代码有什么问题,也试图将 '.user_ids' 排除在外。没有任何错误或任何错误,只是在 Lease 模型中的 user_ids 发生更改时不会触发。

@receiver(m2m_changed, sender=Lease.user_ids)
def update_user_unit(sender, instance, **kwargs):
    print('Test')

阅读documentation,我想发件人应该是中间模型,而不是ManyToMany字段本身。试试这个:

@receiver(m2m_changed, sender=Lease.user_ids.through)