目录结构

1.前言

2.入参auto_now和入参auto_now_add

2.1.入参auto_now的相关知识点

2.2.入参auto_now_add的相关知识点

3.完整的操作流程

3.1.第一步:创建一个模型类

3.2.第二步:创建数据表

3.3.第三步:【admin.py】里进行配置

3.4.第四步:成功登陆admin管理后台

3.5.第五步:成功新增一篇文章

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

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.创建时间和更新时间的添加的更多相关文章

  1. JPA注解实体类,给表添加创建时间,更新时间,id的生成以及创建唯一约束

    首先创建一个BaseModel,自动生成创建时间和更新时间 @SuppressWarnings("serial") @MappedSuperclass public class B ...

  2. Laravel / Lumen 框架修改 创建时间 和 更新时间 对应字段

    为避免浪费时间--先上解决方案 在Model中重写 CREATED_AT 和 UPDATED_AT 两个类常量就可以了,这两个常量分别是创建时间和更新时间的字段名. ================= ...

  3. spring data jpa之Auditing 表的创建时间,更新时间自动生成策略

    java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...

  4. C#获得指定目录床架时间、更新时间和最后访问时间等信息的代码

    将做工程过程常用的内容片段备份一次,下面的内容内容是关于C#获得指定目录床架时间.更新时间和最后访问时间等信息的内容,希望能对小伙伴们也有用. using System;using System.IO ...

  5. Spring Date Jpa on update current_timestamp 自动维护创建时间和更新时间

    在数据库里设置默认值current_timestamp可以维护创建时间,设置on update current_timestamp 可以维护更新时间.在JPA中应该如何去做呢?这里还是以上篇Topic ...

  6. mysql中创建时间和更新时间的区别

    `create_time` ) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` ) ) COMMENT '更新时间', 而在界 ...

  7. mysql 表字段 记录创建时间和更新时间

    sql语句创建: CREATE TABLE `NewTable` ( `id` int NOT NULL AUTO_INCREMENT , `name` varchar(20) NOT NULL , ...

  8. 创建时间和更新时间两个选一个的情况和select case when ... then ... else ... end from 表 的使用

    1.查询时间,如果更新时间update_time为空就查创建时间create_time,否则查更新时间update_time select update_time,create_time, case ...

  9. Ubuntu 16 , 从时间服务器更新时间

    因为在公司的内网,所以不能用Ubuntu默认的服务器去更新时间. 只能改成从网关 10.182.202.2 上取时间 1) 如果没有安装ntp 的话,先安装 apt-get install ntp 2 ...

随机推荐

  1. SVN、GIT比较

    Git是分布式的,完全可以不备份代码,下载下来后,在本地不必联网就可以看到所有的log,跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并,也可以不用联网在本地提交 SVN ...

  2. Mysql 5.5升级5.8

    前言,因为升级跳板机,需要将mariadb 升级到10.2,也就是对应MySQL的5.8,废话不多说下面开始进行mariadb 5.5 的升级 Welcome to the MariaDB monit ...

  3. scp命令------两服务器之间传输数据

    scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 . 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码 ...

  4. java判断是否为整数

    /** * 判断是否为整数 * * @param str 传入的字符串 * @return 是整数返回true,否则返回false */ public static boolean isInteger ...

  5. python--可迭代对象、迭代器和生成器

    迭代器 1.什么是迭代器? 不依赖于索引的取值方式 迭代是一个重复的过程,即每一次重复为一次迭代,并且每次迭代的结果都是下一次迭代的初始值 示例: str1 = 'abcde' count = 0 w ...

  6. python--基础1(pip,虚拟环境、python编写规范)

    python简介 1.Python是一种解释型脚本语言; 2.Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读.易维护,并且被大量用户所欢迎的.用途广泛的语言; 3.pytho ...

  7. Java开发中POJO和JSON互转时如何忽略隐藏字段

    1. 前言 在Java开发中有时候某些敏感信息我们需要屏蔽掉,不能被消费这些数据的客户端知道.通常情况下我们会将其设置为null或者空字符 "",其实还有其它办法,如果你使用了Ja ...

  8. Latex安装教程(附美赛论文latex模板)

    @ 目录 Latex简介 安装步骤 texlive下载 配置环境变量 配置Texsudio latex版本helloworld 美赛 latex模板 Latex简介 LaTeX(LATEX,音译&qu ...

  9. hdu5662 YJQQQAQ and the function (单调栈)

    Problem Description YJQQQAQ has an array A of length n. He defines a function fl,r,k where l,r,k are ...

  10. 西南民族大学第十二届程序设计竞赛(同步赛) A.逃出机房 (bfs)

    题意:有来两个人A和B,A追B,A和B每次向上下左右移动一个单位,一共有两扇门,问A是否可以追上B(在门口追上也算合法). 题解:当时看题意说在门口也算?就觉得是判断两个人到门口的时间,对他们两个人分 ...