Django - 在模型中,created_at是UNIX时间戳

时间:2017-01-06 22:29:38

标签: python django unix

我是Django的新手。我会在Rails中更好地掌握这一点,但对Python / Django中的所有库和转换都不太熟悉。

我有一个模特:

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

这导致格式:

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

我希望在保存到DB之前看看它是否存储为UNIX值?

这看起来很有前途https://stackoverflow.com/a/34843855/3007294,但无法让它发挥作用。每次我尝试创建Status对象时,都会收到此错误:

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

我的意图是每次创建Status对象时都不必输入。

谢谢 -

1 个答案:

答案 0 :(得分:4)

  

我的意图是每次创建Status对象时都不必输入。

已经使用auto_now_add=True option处理了这个问题。创建Status对象时,created字段将填充当前日期时间。

  

我希望在保存到DB之前看看它是否存储为UNIX值?

您可以随时将datetime值从Status.created转换为Unix时间戳。将它存储为默认数据库日期时间格式(这是DatetimeField所做的)通常优先将其存储为时间戳,这只是一个整数。

但是,您提供的示例中使用的库django-unixdatetimefield表示“UnixDateTimeField基于标准Django DateTimeField的实现,使其与它支持的所有功能和选项100%兼容。”因此,您应该能够为该字段提供auto_now_add=True选项。