在更改中收听 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
我的应用程序中有一堆模型,我正在用 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