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

how to group different model updates when listening to post_save in changes

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

假设模型 Question 与模型 Answer 具有一对二多关系,会发生以下情况:

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

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

实际上我认为你可以使用 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