1

我想在某个模型中的某个 DateTimeField 等于 datetime.now() 的值时/之后立即触发一个事件。这是一个标记产品到期的字段,所以一旦它到期,我想触发一个事件并执行一些相关代码。

如何在 Django 中做到这一点?

PS 我可以使用 Celery 来做到这一点吗,因为我打算将它用于项目的其他部分?

4

1 回答 1

1

您可以编写自定义管理命令,然后设置每分钟运行的cron 作业。此 cron 轮询过期对象,并执行相关代码。

import datetime
from django.core.management.base import BaseCommand

def compute_inactivity():
    expired_objects = MyModel.objects.filter(datetime__lte=datetime.datetime.now())
    for obj in expired_objects:
        #Take the necessary action

class Command(BaseCommand):

    def handle(self, **options):
       compute_expiry()
于 2013-07-22T14:46:26.620 回答