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

如何在Django中做到这一点?

附言因为我计划将其用于项目的其他部分,所以我可以使用Celery做到这一点吗?

最佳答案

您可以编写一个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()

关于python - 根据Django中DateTimeField的值更改触发 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17790412/

10-16 23:03