2010-06-23 84 views
5

我正在通過Django提供Python應用程序。在應用程序中,我在幾個表格中存儲了經典的「創建的」字段。Datetime.now()異常 - Python

這是該領域的樣子Django的表單中:

created = models.DateTimeField(blank=True, default=datetime.now()) 

不幸的是,datetime.now()是不準確的。事實上,在數據庫中,我有一組具有完全相同時間戳的行。

datetime.now()值似乎每30-45分鐘更改一次。


我的Django應用程序在IIS6後面的Windows Server 2005上提供。

幫助會很棒!

回答

6

因爲datetime.now()在您的模塊被初始化時被調用,並且該值被用於默認值。

您要使用的auto_now_add=True parameter

created = models.DateTimeField(auto_now_add=True) 

編輯:不需要「空白」,如果你設置自動選項。

10

這是一個常見錯誤新手,很遺憾。在定義中,您有調用datetime.now()方法 - 這意味着缺省值將是執行定義的時間,即您的服務器進程啓動時。

您需要通過調用代替

created = models.DateTimeField(blank=True, default=datetime.now) 

即無需主叫方括號。

(或者,只使用auto_now_add=True)。