我有一个带有下面模型的django应用程序
Class Promotion(models.Model):
name = models.CharField(max_length=256)
start_date = models.DateTimeField()
end_date = models.DateTimeField()
因此,在创建促销记录期间,我们会为其设置start date
和end date
,以便current date
大于{{1}时的所有功能,记录应该自动从数据库中删除,否则将发送一封电子邮件....所以某种情况。
所以任何人都可以让我知道,如何处理这些情况,我的意思是当前日期大于促销日期做某事.......
答案 0 :(得分:2)
我会实现一个management command,删除任何“已过期”的Promotion
条记录,即其end_date
已过去。然后,计划任务(Ubuntu中的cron job(以及Unix风格的系统)将按照您通过crontab
指定的计划调用管理命令,在这种情况下每天至少一次。
修改:您也可以使用celery
“期间任务”来运行计划任务,文档here。
答案 1 :(得分:-1)
使用pre_save信号检查在输入新记录之前检查日期。