当数据库值发生变化时,Django会发送推送通知

时间:2017-01-28 12:06:59

标签: python django notifications

我是Django的新手,我必须创建一个能够检测到数据库中的特定值何时小于X的服务器,然后向特定用户发送通知。

我的想法是这样的:

  1. 检测到小于X的值。
  2. 服务器将通知表中的notification记录添加到数据库中。
  3. 服务器向设计用户发送推送通知。
  4. 在应用程序中,有一个读取上述表格的通知视图。

    我能够实现第2点和第3点,但第一点我不知道如何启动它。

1 个答案:

答案 0 :(得分:3)

可以通过覆盖保存方法或使用post_save信号来实现。

第一个选项可能如下所示:

class Foo(model.Model):
    # here you define your fields
    def save(self, *args, **kwargs):
        super(Foo, self).save(*args, **kwargs)
        if self.desired_field < X:
            # logic goes here

第二个选项可以这样实现:

class Foo(model.Model):
    # here you define your fields

@receiver(post_save, sender=Foo)
def notify(sender, instance, **kwargs):
    if instance.desired_field < X:
       # logic goes here