Django:断开post_save信号以避免递归

2024-04-26 23:34:06 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的模型:

class Paper(models.Model):
    ...
    collection = models.ForeignKey(Collection, on_delete=models.CASCADE)
    rang = models.IntegerField(default=0)
    class Meta:
        ordering = ['collection','rang']

保存模型时,我希望它更新模型每个对象中的所有“范围”字段,以便它们增加10。在

我使用下面的post_save信号来避免递归问题:

^{pr2}$

但是,我无法得到断开和连接的信号。有人有什么建议吗?在


Tags: 模型defaultmodel信号onmodelsdeleteclass
2条回答

您可以使用update

Paper.objects.filter(pk=paper.pk).update(rang=idx*10)

而不是

^{pr2}$

关于禁用特定post_save信号的一点说明。这样:

Signal.disconnect(post_save, sender=Papier)

它不适用于Django 2.2。在

关闭信号的工作选项如下所示:

^{pr2}$

相关问题 更多 >