我想立即在某个模型中某个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/