【发布时间】:2014-03-16 23:58:14
【问题描述】:
我使用 pre_save 和 post_save 信号将分析数据发送到 Mixpanel。我更喜欢将此与模型的保存方法分开。
有没有办法在 pre_save 信号发生时保存实例的旧值,然后在 post_save 上检查新值?
我的代码如下所示:
@receiver(pre_save, sender=Activity)
def send_user_profile_analytics(sender, **kwargs):
activity_completed_old_value = kwargs['instance'].is_completed
# store this value somewhere?
@receiver(post_save, sender=Activity)
def send_user_profile_analytics(sender, **kwargs):
if kwargs['instance'].is_completed != activity_completed_old_value:
# send analytics
对我来说,使用 post_save 发送分析数据似乎比使用 pre_save 更强大,但那时我看不到模型实例中发生了什么变化。我想防止在我的模型的保存功能中使用全局变量或实现某些东西。
【问题讨论】:
标签: django django-signals