Django NBA Web开发 - Step 8 时间戳 Da
2019-03-16 本文已影响0人
AllenBigBear
还是围绕着发布文章来开发,每个文章都会有需要有创建时间这个信息。
包括还有发的评论啊什么的,也是需要显示时间信息
Django里面已经内置了关于时间的字段,主要有2种,一个是DateField,还有一个是DateTimefield。
来看一下官方文档的说明
官方文档最重要的2个属性是auto_now和auto_now_add
auto_now:当为True的时候,自动生成当前时间,而且他的更新方式是只能通过Model.save方法,哪怕是QuerySet的update也不行,适合用在“最后更新”这种场景。
auto_now_add:也是当为True的时候,自动生成当前时间,且默认情况下无法被修改,哪怕是你指定了默认值也会被无视。如果一定要进行修改,你只能将时间生成方式手动写成date.today或者timezone.now这样。
另外需要特别注意的是,auto_now ,auto_now_add以及default是互斥的,如果同时使用,会报错。
回到本身项目,更新models模型
修改模型
再修改前端渲染文件,增加了发布时间这个时间戳
{{article.article_title}}<br>
作者:{{article.user}}<br>
发布时间:{{article.article_create_time}}<br>
<h3>{{article.article_content}}<br></h3>
最后来看一下效果图
效果图
另外要提一句的是,Django的时区是可以更改的
在settings文件里,USE_TZ设置为True之后,他会根据上面Time_Zone设置的时区,自动切换时间,而后端数据库里的时间是UTC时间,他的改变是在前段被渲染改变的
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
屏幕快照 2019-03-16 下午9.00.16.png