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 ...
随机推荐
- 硬核!八张图搞懂 Flink 端到端精准一次处理语义 Exactly-once(深入原理,建议收藏)
Flink 在 Flink 中需要端到端精准一次处理的位置有三个: Source 端:数据从上一阶段进入到 Flink 时,需要保证消息精准一次消费. Flink 内部端:这个我们已经了解,利用 Ch ...
- Java——介绍
Java基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过彼此的方法来协同工作. 对象: 对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行 ...
- jQuery.qrcode二维码插件生成网页二维码
如果是一个固定的二维码,我们只需要在网上找个地方生成图片,然后放上图片就可以了.但如果是地址不固定需要根据页面来生成的话.就有两种做法,一个是后端根据页面做一个动态的二维码.一种是前端使用插件生成. ...
- Java8种排序算法学习
冒泡排序 public class test { public static void main(String[] args) { // TODO Auto-generated method stub ...
- BigDecimal 用法详解
BigDecimal简介 BigDecimal用法: BigDecimal的构造方法 BigDecimal常用方法描述 BigDecimal比较 BigDecimal总结 BigDecimal简介 J ...
- java+js正则表达式获取URL(带端口)域名
function isPassUrl(remoteLoginUrl){ var flag = false; var passUrlStr = document.getElementById(" ...
- ajax带checkbox选择值到后台
function togglefun(checkbox){//全选 $('input[name=cids]').prop('checked', $(checkbox).prop('checked')) ...
- Pytest(13)命令行参数--tb的使用
前言 pytest 使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败. --tb=style 参数可以设置报错的时候回溯打印内容,可以设置参 ...
- 基于Qt的tcp客户端和服务器实现摄像头帧数据处理(客户端部分)
项目简述 实现客户端调用摄像头,并以帧的形式将每一帧传输到服务端,服务端将图片进行某些处理后再返回给客户端.(客户端与服务端通信代码部分参考<Qt5 开发及实例>) 项目步骤 客户端的编写 ...
- Codeforces750E. New Year and Old Subsequence (线段树维护DP)
题意:长为2e5的数字串 每次询问一个区间 求删掉最少几个字符使得区间有2017子序列 没有2016子序列 不合法输出-1 题解:dp i,p(0-4)表示第i个数匹配到2017的p位置删掉的最少数 ...