DateTimeField:日期+时间

return datetime.date(*map(int, val.split(b"-")))
TypeError: function missing required argument 'month' (pos 2)

 

DateTimeField:日期+时间
等价于与python里的 datetime.datetime 实例。

比如:2018-08-30 16:31:00

有以下两个可选的选项,均为bool类型:
auto_now

默认值为false,设置为true时,每次执行 save 操作时,将其值设置为当前时间,并且每次修改model,都会自动更新。

使用场景:这个参数在需要存储“最后修改时间”的场景下,十分方便。
注意:设置该参数为true时,并不意味着字段的默认值设为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带的admin管理器,那么该字段在admin中是只读的。

auto_now_add

默认值为false,设置为true时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。

使用场景:该属性通常被用在存储“创建时间”的场景下。

注意:一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。

auto_now和auto_now_add被设置为True后,这样做会导致字段成为editable=False和blank=True的状态。editable=False将导致字段不会被呈现在admin中,blank=Ture表示允许在表单中不输入值。

DateField
日期,与python里的datetime.date 实例同。

比如:2018-08-30

在数据库,因为 DateField是日期项,没法精确到时分秒。
!!!pycharm自带数据库插件无法提交DateField数据,格式化为时间戳例如:1574294400000,导致orm在处理数据时直接报错。

return datetime.date(*map(int, val.split(b"-")))
1
所以这里出现溢出错误。正确做法是不能通过数据库直接提交DateField数据,可以通过datetime模块插入修改数据。

import datetime
time = datetime.date.today()
print(time)
obj = Book.objects.filter(pk=2).update(publishDate=time)
print(obj)

posted @   shclbear  阅读(176)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示