python测试开发django(18)--添加创建时间DateTimeField
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了 python测试开发django(18)--添加创建时间DateTimeField,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2677字,纯文字阅读大概需要4分钟。
内容图文
![python测试开发django(18)--添加创建时间DateTimeField](/upload/InfoBanner/zyjiaocheng/618/2f96adef188c44b099c35a94370812b3.jpg)
前言
我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新
在models.py建表的时候,设置create_time和update_time字段,类型为DateTimeField,添加auto_now_add和auto_now参数;
DateTimeField
创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三种对象。这三个field有着相同的参数auto_now和auto_now_add
auto_now_add 默认为false
这个参数的默认值为False,设置为True时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。
该属性通常被用在存储“创建时间”的场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。
auto_now 默认值为false
这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。因此这个参数再需要存储“最后修改时间”的场景下,十分方便。
需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法在程序中手动为字段赋值;
如果使用django自带的admin管理器,那么该字段在admin中是只读的。
在models.py下新建一个Articles类,添加title、body、auth、create_time、update_time字段。
CharField是字符串类型,必须要有max_length参数,当正文的文本内容很多时,需使用TextField
# coding:utf-8 from django.db import models # Create your models here. #新建一个Man类,继承自models.Model class Articles(models.Model): '''文章''' title=models.CharField(max_length=30) #标题 body=models.TextField() #正文 auth=models.CharField(max_length=10) #作者 create_time=models.DateTimeField(auto_now_add=True) #创建时间 update_time=models.DateTimeField(auto_now=True) #最后更新时间 def __str__(self): return self.__doc__+"title->"+self.title
当auto_now和auto_now_add 被设置为True后,会导致其字段属性editable=False和blank=True的状态。editable=False将导致字段不会呈现在admin中,blank=True表示允许在表单中不输入值。
admin.py注册表
在admin.py添加注册表的信息,然后执行下面两句,同步数据库(先后顺序可随意)
python manage.py makemigrations python manage.py migrate
# coding:utf-8 from django.db import models # Create your models here. #新建一个Man类,继承自models.Model class Articles(models.Model): '''文章''' title=models.CharField(max_length=30) #标题 body=models.TextField() #正文 auth=models.CharField(max_length=10) #作者 create_time=models.DateTimeField(auto_now_add=True) #创建时间 update_time=models.DateTimeField(auto_now=True) #最后更新时间
admin后台
打开admin后台,新增一条记录
编辑标题、正文、作者之后保存
列表页面显示结果如下,如果重新编辑的话,最后更新时间也会更新
修改后,update time时间变了;
内容总结
以上是互联网集市为您收集整理的 python测试开发django(18)--添加创建时间DateTimeField全部内容,希望文章能够帮你解决 python测试开发django(18)--添加创建时间DateTimeField所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。