2013-10-31 56 views
0

我有以下如何根據在Django

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

模型中的Django的應用程序,以便在創建促進紀錄,我們會設置一個start dateend date它結束日期自動刪除記錄,所以當current date大於end date時,所有的功能是什麼,記錄應該從數據庫中自動刪除,否則會發送一封電子郵件....所以有這種情況。

所以任何一個可以請讓我知道,如何處理這些情況,我的意思是在當前日期晚於促銷日期更大的做一些事情.......

回答

1

我會實現一個management command即刪除任何Promotion記錄中的「過期」,即它們的end_date已經過去了。然後,在Ubuntu(和Unix口味系統)中的計劃任務cron job將按照您通過crontab指定的計劃調用管理命令,在這種情況下至少每天一次。

編輯:另外,您可以使用celery「時期的任務」,以運行計劃任務,文檔here

0

使用pre_save信號檢查在輸入新記錄之前檢查日期。

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

+0

無論信號是否會在任何地方放慢過程,你能舉個例子說明如何有效地用信號做到這一點嗎? –

+0

我無法爲您編寫代碼。添加信號不會增加任何明顯的時間。 – virtuexru

+0

如果您至少嘗試編寫代碼並且無法找出錯誤,那我們可以提供幫助!所以試試吧,把它分開,然後再試一次。如果你仍然卡住..張貼它! – virtuexru