我是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对象时都不必输入。
谢谢 -
答案 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
选项。