DateField相当于mysql中的date类型。
DateTimeField相当于mysql的datetime类型。
为什么说DateTimeField并非是timestamp类型,因为timestamp是首先存储为世界标准时间然后按客户端当前时区来取,而DateTimeField是存什么就是什么,没有一个转换的过程。
在数据表中,我们可以在设计的时候填入默认值,如当前时间,在ORM中,可以这样声明:
date_add=models.DateTimeField(auto_now_add=True)
有一点要注意的是,auto_now_add默认是UTC时间,即国际标准时间,伦敦时间,我们是东8区,所以看到的是比当前时间要晚8个小时。这个问题的解决办法是:
在settings.py中修改:
TIME_ZONE = 'Asia/Shanghai'
这样存入的时间就是东8区的时间了。