Django将来某个时候发送信号

时间:2013-04-04 20:49:14

标签: django django-models scheduled-tasks crontab django-signals

我有一个需要expires_at时间字段的模型。从某种意义上说,用户可以设置一个超出条目无效的时间。那时,我需要执行特定的操作,例如发送电子邮件和/或更改模型中的参数。

具体来说,说我有一个模型:

class SomeModel(models.Model):
    ... #Code here ...
    expires_at = models.DateTimeField()

现在,保存模型后,expires_at字段中将设置一段时间,这是将来的某个时间。当这个时间发生时,我需要发送一封电子邮件。

我看过django的信号功能,但还不是很成功。我不想诉诸于运行cronjobs,继续轮询数据库或其他东西。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

class SomeModel(models.Model):
    ... #Code here ...
    expires_at = models.DateTimeField()


def your_signal(sender, instance, created, **kwargs):
    if created:
        instance.expires_at =       <---set time here
        instance.save()

        #do other stuff

post_save.connect(your_signal, sender=SomeModel)