3

我有一个带有以下模型的 django 应用程序

Class Promotion(models.Model):
    name = models.CharField(max_length=256)
    start_date = models.DateTimeField()
    end_date = models.DateTimeField()

所以在创建促销记录的过程中,我们会给它设置一个start dateend date,所以所有的功能是当current date大于时end date,记录应该自动从数据库中删除,否则会发送一封电子邮件...... .所以有些这样的情况。

所以有人可以告诉我,如何处理这些情况,我的意思是当当前日期大于促销日期时做一些事情......

4

2 回答 2

2

我将实施一个管理命令,删除任何Promotion“过期”的记录,即它们end_date已经通过。然后一个计划任务,一个Ubuntu(和 Unix 风格的系统)中的cron 作业crontab,将按照您通过 指定的计划调用管理命令,在这种情况下至少每天一次。

编辑:或者,您可以使用celery“期间任务”来运行计划任务,此处的文档。

于 2013-10-31T19:59:47.823 回答
0

在输入新记录之前,使用 pre_save 信号检查检查日期。

https://docs.djangoproject.com/en/dev/topics/signals/

于 2013-10-31T19:59:35.620 回答