admin后台发布文章时,一般会有创建时间和最后更新时间这2个字段,创建时间是第一次创建时添加的,最后更新时间是每次更新内容时间更新。
在models.py文件创建表时,设置create_time 和update_time 类型为DateTimeFiled,添加auto_now_add和auto_now参数。
DateTimeField
创建django的modles.py文件,有DateTimeField、DateField和TimeField分别对应datetime(),date(),time(),分别有auto_now_add和auto_now参数对应。
auto_now_add 默认值为false,设置为True时会在model对象第一次被创建时,将字段的值设置为创建的时间,以后修改对象时,字段的值不会再更新。该属性通常被用在存储“创建时间的场景下”,auto_now_add具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。
auto_now默认值为false,设置为True时,在保存字段时会自动设置为当前时间,通常应用场景为“最后修改时间”场景下,十分方便。在django自带的admin管理器,该字段在admin中是只读的,例:
在models.py下新建一个Article类,添加标题title,body内容,auth,create_time 和update_time ,字符串类型:CharFiled,必须要有max_length,如果正文内容很多时,需要使用TextField,代码如下:
将创建的表注册到admin管理后台
终端命令行下执行以下两条命令:
python manage.py makemigrations
python manage.py migrate
打开navicat数据库客户端查看同步表格
登录admin后台管理页面
输入命令行:python manage.py runserver 0.0.0.0:8000
打开admin后台,新增一条记录
对 article数据库进行编辑
列表页面显示结果如下,如果重新编辑的话,最后更新时间也会更新
如果获取的当前时间显示和我们的时间相差八个小时,需要在setting.py设置 TIME_ZONE = 'Asia/Shanghai' ,我这里已经设置好了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django框架学习:十八.添加创建时间DateTimeFiled - Python技术站