Django - 开发站点

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

官方文档如下:
https://docs.djangoproject.com/en/2.1/ref/settings/

屏幕快照 2019-03-16 下午9.00.16.png
上一篇下一篇

猜你喜欢

热点阅读