我的简化问题如下:
我有一个这样的模型:
class Alert(models.Model):
ALERT_CHOICES = [("email","email"),("sms","sms"),("notif","notif")]
name = models.CharField(max_length = 50)
owner = models.ForeignKey(User , on_delete=models.CASCADE)
coins = models.ManyToManyField(Coin,blank=True)
当类似alert 的alert 对象发生更改时.我要在此方法更改后打印连接到alert 的硬币数量:
@receiver(post_save, sender=Alert)
def handle_alert_save(sender, instance, **kwargs):
coins = instance.coins.all()
print(len(coins))
Unfortunately!它会在零钱alert 前打印硬币编号.我想换个对象后再来. 换句话说,POST_SAVE信号恰好等于PRE_SAVE.
for example当我有2枚连接到Aler的硬币时,我把它换成了5.它打印了2!
我try 了所有其他信号,如PRE_SAVE和PRE_DELETE以及PRE_MIGRATE和POST_MIGRATE.