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 ...
随机推荐
- Vue3.0网页版聊天|Vue3.x+ElementPlus仿微信/QQ界面|vue3聊天实例
一.项目简介 基于vue3.x+vuex+vue-router+element-plus+v3layer+v3scroll等技术构建的仿微信web桌面端聊天实战项目Vue3-Webchat.基本上实现 ...
- C++复习笔记(1)
复(su)习(cheng)一下c++. 1. 函数 函数重载:允许用同一函数名定义多个函数,但这些函数必须参数个数不同或类型不同. 函数模版: (应该是跟java的泛化类似,内容待扩展) templa ...
- OpenStack (haproxy)
openstack部署脚本 链接:<https://pan.baidu.com/s/1BTp_tGNC6ZWwVmKkhwivgw > 提取码:jxuz haproxy 官网:< h ...
- VSCode-Prettier和ESLint如何和睦共处?
1 在VSCode中单独使用Prettier保存代码自动格式化的配置方法 1.1 为什么要使用Prettier? 手动调整代码格式,不仅低效,而且在团队协作开发中,无法保证代码风格统一,所以需要引入自 ...
- 2019 徐州网络赛 M Longest subsequence t
对于答案来说,一定是 前 i-1 个字符和 t的前 i 个一样,然后第 i 个字符比 t的 大 \(i\in [1,m]\) 前缀为t,然后长度比t长 对于第一种情况,枚举这个 i ,然后找最小的 p ...
- P2765 魔术球问题 (网络流)
题意:n根柱子 把编号1,2,3....的球依次插到柱子上去 需要满足相邻的两个球编号加起来为完全平方数 n < 55 题解:网络流24(23)题里的 但是一直不知道怎么建图 或者说建图的意义 ...
- zoj3593One Person Game (扩展欧几里德)
There is an interesting and simple one person game. Suppose there is a number axis under your feet. ...
- [HDU-5172] 单点查询线段树
题意: 给你一个长度为n的数组v[],有m次询问,问你在区间[L,R]中是否包含区间[1,R-L+1]的全部数字,如果是输出YES,否则输出NO 题解: 区间[1,R-L+1]与区间[L,R]的长度一 ...
- Centos 7 安装nginx指定版本
官方版本列表:http://nginx.org/download/ 1.安装 wget http://nginx.org/download/nginx-1.10.3.tar.gz tar -zxvf ...
- 国产网络测试仪MiniSMB - 如何配置VLAN数据流
国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...