如何在更改中监听post_save时对不同的模型更新进行分组

问题描述 投票:0回答:1

我的应用程序中有一堆模型,我正在听post_save的更改。另外,我在所有这些字段上都有一个updated_at字段,它是一个时间戳,将在每次保存操作时更新。

假设模型Question与模型Answer有一两个关系,则会发生以下情况:

如果我添加一个Answer,那么两个模型将触发post_save(因为Question上的时间戳更新)。在我的用例中,我需要知道天气Question本身被修改(除了updated_at)或者如果post_save只是因为添加了Answer而被触发。

有没有一个干净的方法来实现这一目标?

django django-signals
1个回答
1
投票

实际上我认为你可以使用update_fields参数来检查修改后的问题字段

@receiver(post_save, sender=Question)
def tri_qu(sender, update_fields, created, instance, **kwargs):
    if not created and update_fields and update_fields == ['updated_at']:
        # ... post_save where triggered, because of answer was added
© www.soinside.com 2019 - 2024. All rights reserved.