2014-10-31 46 views
0

我有一個Django模型(ReportCache),它將報表存儲在SQL表中。其中的一個字段是django.db.models.DateTimeField,用於存儲上次更新報告的時間。DateError的DataError?

出於某種原因,當我嘗試將日期時間保存到它們時,我得到的DataError:值太長而不能輸入字符(20)。 datetime是由datetime.datetime.now()生成的,並且我嘗試過使用和不使用django.utils.timezone.make_aware(),但沒有任何影響。

完全回溯是https://gist.github.com/cyberjacob/2f1e61f83a6fbd5792b8

任何建議爲什麼我的日期是隨機過長?

+0

要麼日期字段在某種程度上作爲數據庫中varchar列創建,或者誤差在不同的領域完全。 – 2014-10-31 12:32:43

+0

回溯顯示LastUpdate = datetime.datetime.now(),是我的代碼中的違規行 – CyberJacob 2014-10-31 12:53:26

+0

這顯然是多行語句的第一行,並且不是錯誤的原因;將變量設置爲日期將不會導致數據庫插入。請顯示該行的上下文:也許整個runDetailedReport函數,如果它不是太長。 – 2014-10-31 13:14:21

回答

1

該問題似乎不是與日期字段,但與ReportKey字符串字段。

如前所述,在Python中直接調用類似foo.__str__()這樣的雙下劃線方法並非慣用。您應該調用內置函數:str(foo)。更妙的是,雖然是使用字符串插值:

ReportKey = "DetailedReport.{}.{}.{}".format(year, month, clientId) 
相關問題