2017-01-06 75 views
2

我是Django的新手。我將在Rails中更好地理解這一點,但對Python/Django中的所有庫和會話不夠熟悉。Django - 在模型中,created_at是UNIX時間戳

我有一個模型:

class Status(models.Model): 
    created = models.DatetimeField(auto_now_add=True) 

這導致格式:

"created": "2017-01-06T22:21:51.531723Z" 

我希望看到,如果之前保存到數據庫,它存儲作爲UNIX價值?

這看起來很有希望https://stackoverflow.com/a/34843855/3007294,但不能得到它的工作。每次我試圖創建一個狀態對象,我得到這個錯誤:

Datetime has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]. 

我的意圖是不是要進入這樣的狀態對象被創建每次。

謝謝 -

+2

目前還不清楚你在問什麼。該字段將被保存爲數據庫的日期時間格式。你根本不需要做任何事情。 –

+0

@DanielRoseman我曾希望將該字段保存爲UNIX時間戳(從日期時間格式轉換而來)。 – user3007294

回答

4

My intentions are to not have to enter this every time a Status object is created.

這已經與auto_now_add=True option照顧。當您創建Status對象時,created字段將填充當前日期時間。

I was hoping to see if before saving to the DB that it stores as a UNIX value?

您可以從Status.createddatetime值轉換爲所需的Unix時間戳隨時隨地。以默認數據庫日期時間格式存儲它(這是DatetimeField所做的)通常比將它存儲爲時間戳(僅僅是一個整數)更受歡迎。

但是,您提供的示例中使用的庫django-unixdatetimefield指出「UnixDateTimeField基於標準Django DateTimeField的實現,使其與支持的所有功能和選項100%兼容」。所以,你應該能夠提供該字段的auto_now_add=True選項。

+0

謝謝@Rushy澄清!我沒有很好地檢查文檔,你是對的。欣賞它! – user3007294