0

expires_at時間フィールドを取るモデルがあります。その意味で、ユーザーはエントリが無効になる時間を設定できます。その際、メールの送信やモデル内のパラメーターの変更などの特定のアクションを実行する必要があります。

具体的には、次のようなモデルがあるとします。

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

ここで、モデルが保存されると、expires_atフィールドには将来の時間が設定されます。この時間になったら、メールを送信する必要があります。

私はdjangoのシグナル機能を見てきましたが、あまり成功していません。データベースなどをポーリングし続ける cron ジョブの実行に頼りたくありません。誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

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)
于 2013-04-05T01:17:02.760 に答える