我想在特定模型中的某个DateTimeField等于datetime.now()的值时立即触发事件。这是一个标记产品到期的字段,因此一旦它到期,我就想触发一个事件并执行一些相关的代码。
如何在Django中做到这一点?
P.S。我可以使用Celery来做到这一点,因为我计划将其用于项目的其他部分吗?
答案 0 :(得分:1)
您可以撰写custom management command,然后设置每分钟运行的cron job。 此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()