如何根据django中的结束日期自动删除记录

时间:2013-10-31 19:57:14

标签: python django date model

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

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

因此,在创建促销记录期间,我们会为其设置start dateend date,以便current date大于{{1}时的所有功能,记录应该自动从数据库中删除,否则将发送一封电子邮件....所以某种情况。

所以任何人都可以让我知道,如何处理这些情况,我的意思是当前日期大于促销日期做某事.......

2 个答案:

答案 0 :(得分:2)

我会实现一个management command,删除任何“已过期”的Promotion条记录,即其end_date已过去。然后,计划任务(Ubuntu中的cron job(以及Unix风格的系统)将按照您通过crontab指定的计划调用管理命令,在这种情况下每天至少一次。

修改:您也可以使用celery“期间任务”来运行计划任务,文档here

答案 1 :(得分:-1)

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

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