django学习-24.创建时间和更新时间的添加
目录结构
1.前言
我们通过admin管理后台新增一篇文章的时候,一般都要有【创建时间】和【最后更新时间】这2个字段,并且我们希望这2个字段的赋值规则如下:
- 第一次新增文章内容成功后:【创建时间】和【最后更新时间】的值都会被自动赋值为新增文章成功时的系统时间,此时【创建时间】和【最后更新时间】的值一定相等;
- 每次修改文章内容成功后:【创建时间】的值都不变都一直是新增文章成功时的系统时间,【最后更新时间】的值会被自动更新赋值为修改文章内容成功时的系统时间,此时【创建时间】和【最后更新时间】的值一定不相等;
细节:
①.每张数据表在设计阶段,其实都应该都要有【创建时间】和【最后更新时间】这2个字段,因为这2个字段经常会被用于做数据排序展示的条件。
2.入参auto_now和入参auto_now_add
每个模型类里,都有DateTimeField和DateField和TimeField这三种类,这三种类可以分别用来创建三种不同日期类型的数据表字段;
这三种类有着相同的参数:auto_now和auto_now_add;
细节:
①.当这三种类里的任意一个类里的入参值auto_now或者auto_now_add的值被设置为True后,会导致:类里的入参editable值变为False,类里的入参blank的值变为True。
②.入参editable值为False,表示:对应表字段不会被展示在admin管理后台里的任何一个页面里比如不会展示在新增页面不会展示在修改页面;
③.入参blank的值为True,表示: 允许用户在新增/编辑页面中不用输入对应表字段的值;
④.入参auto_now和入参auto_now_add的值不能同时设置为True;
2.1.入参auto_now的相关知识点
入参auto_now的默认值为False;
当入参auto_now的值被设置为True,表示:当一条新数据被修改成功后,将该入参auto_now对应的表字段的值设置为修改成功时的系统时间;
2.2.入参auto_now_add的相关知识点
入参auto_now_add的默认值为False;
当入参auto_now_add的值被设置为True,表示:当一条新数据被创建成功后,将该入参auto_now_add对应的表字段的值设置为创建成功时的系统时间,以后修改这条新数据时,该表字段的值不会再更新;
3.完整的操作流程
3.1.第一步:创建一个模型类
# 新增一个Article类
class Article(models.Model):
'''文章'''
title = models.CharField(max_length=30) # 标题
body = models.TextField() # 正文(因为文章的正文字数会很多,所以需要使用该类TextField)
author = models.CharField(max_length=10) # 作者
create_time = models.DateTimeField(auto_now_add=True) # 创建时间
update_time = models.DateTimeField(auto_now=True) # 更新时间

3.2.第二步:创建数据表
通过迁移相关的命令行,比如【python manage.py makemigrations】和【python manage.py migrate】进行创建,相关操作在之前的博客有提到,这里不具体再展开描述;

3.3.第三步:【admin.py】里进行配置
class ControllerArticle(admin.ModelAdmin):
list_display = ("title","author","body","create_time","update_time")
search_fields = ("title",) admin.site.register(models.Article,ControllerArticle)

3.4.第四步:成功登陆admin管理后台
3.5.第五步:成功新增一篇文章



3.6.第六步:成功更新一篇文章

django学习-24.创建时间和更新时间的添加的更多相关文章
- JPA注解实体类,给表添加创建时间,更新时间,id的生成以及创建唯一约束
首先创建一个BaseModel,自动生成创建时间和更新时间 @SuppressWarnings("serial") @MappedSuperclass public class B ...
- Laravel / Lumen 框架修改 创建时间 和 更新时间 对应字段
为避免浪费时间--先上解决方案 在Model中重写 CREATED_AT 和 UPDATED_AT 两个类常量就可以了,这两个常量分别是创建时间和更新时间的字段名. ================= ...
- spring data jpa之Auditing 表的创建时间,更新时间自动生成策略
java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...
- C#获得指定目录床架时间、更新时间和最后访问时间等信息的代码
将做工程过程常用的内容片段备份一次,下面的内容内容是关于C#获得指定目录床架时间.更新时间和最后访问时间等信息的内容,希望能对小伙伴们也有用. using System;using System.IO ...
- Spring Date Jpa on update current_timestamp 自动维护创建时间和更新时间
在数据库里设置默认值current_timestamp可以维护创建时间,设置on update current_timestamp 可以维护更新时间.在JPA中应该如何去做呢?这里还是以上篇Topic ...
- mysql中创建时间和更新时间的区别
`create_time` ) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` ) ) COMMENT '更新时间', 而在界 ...
- mysql 表字段 记录创建时间和更新时间
sql语句创建: CREATE TABLE `NewTable` ( `id` int NOT NULL AUTO_INCREMENT , `name` varchar(20) NOT NULL , ...
- 创建时间和更新时间两个选一个的情况和select case when ... then ... else ... end from 表 的使用
1.查询时间,如果更新时间update_time为空就查创建时间create_time,否则查更新时间update_time select update_time,create_time, case ...
- Ubuntu 16 , 从时间服务器更新时间
因为在公司的内网,所以不能用Ubuntu默认的服务器去更新时间. 只能改成从网关 10.182.202.2 上取时间 1) 如果没有安装ntp 的话,先安装 apt-get install ntp 2 ...
随机推荐
- 关于ckfinder上传文件时不能根据结果返回自定义操作问题?
最近项目中为了便于文件的管理,所以CMS项目中使用到了ckfinder插件,但是在使用的过程中,发现其自带的上传事件,如果上传重名的文件,该工具会自动提示错误,显示上传失败.但是如果想要自己去处理重名 ...
- Docker下使用centos无法使用systemctl怎么办
提交正在使用的容器: docker commit [ContainerId] 提交停止正在运行无法使用Systemctl的容器: docker stop [ContainerId] 删除这个容器(可选 ...
- 搜索Ex (洛谷提高历练地)
搜索Ex P1120 小木棍 题意:不超过65根长度小于50的小木棍(是由一批等长木棍砍断得到的),求原始木棍的最小可能长度 分析:优化+减枝爆搜 搜索状态要记录当前尝试的已经填好的长度,当前尝试填的 ...
- 2018 ccpc吉林 The Tower
传送门:HDU - 6559 题意 在一个三维空间,给定一个点和他的三维速度,给定一个圆锥,问这个点最早什么时候能撞上圆锥. 题解 本来一直想着怎么求圆锥的方程,然后....队友:这不是二分吗!然后问 ...
- BZOJ3998 弦论 【SAM】k小子串
BZOJ3998 弦论 给一个字符串,问其第\(K\)小字串是什么 两种形式 1.不同起始位置的相同串只算一次 2.不同起始位置的相同串各算一次 首先建\(SAM\) 所有串的数量就是\(SAM\)中 ...
- bzoj3626: [LNOI2014]LCA (树链剖分+离线线段树)
Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. ...
- codeforces 580D. Kefa and Dishes
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 错误: 未能完成程序集的安装(hr = 0x8007000b)。探测终止。
解决方案:VS中"工具"->"选项"->"Web项目"->"对网站和项目使用IIS Express的64位版& ...
- dict与set -- Python
dict(字典):用空间换取时间,占据空间大,但查询速度快,键值对(key:value),key唯一 d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} 由于一个k ...
- npm version ^ meaning
npm version ^ meaning ^ 更新版 https://docs.npmjs.com/cli/v6/commands/npm-version https://github.com/ge ...