Django小技巧04: 自动日期时间字段

翻译整理自: simpleisbetterthancomplex.com

Django 的DateTimeFieldDateField有两个非常有用的参数,用于自动管理时间。如果你需要跟踪保存纪录的创建时间和更改时间,则无须手动执行,只需要加上auto_nowauto_now_add参数并设置为True即可。 如下面例子所示:

Python

class Invoice(models.Model):
    description = models.CharField(max_length=255)
    status = models.CharField(max_length=10)
    vendor = models.ForeignKey(Vendor)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
  • auto_now_add在创建的时候设置字段为timezone.now()
  • auto_now 在每次调用save方法都会更新字段

需要注意的是, 两个参数都将使用timezone.now()更新字段值,这意味着纪录创建的时候两个字段都将会填充。

这是一个非常简单的技巧, 让你的代码变得非常清晰。

阅读更多关于Automatic DateTime Fields的文档. Django Documentation

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云数据库团队的专栏

MySQL 数据库的高可用性分析

MySQL 数据库是目前开源应用最大的关系型数据库,有海量的应用将数据存储在 MySQL 数据库中。存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目...

9.3K1
来自专栏沈唁志

整合ThinkPHP功能系列之微信公众号模板消息发送

所有服务号都可以在功能、添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限

1862
来自专栏数据和云

Oracle 12.2新特性掌上手册 - 第五卷 RAC and Grid

编辑手记:RAC是Oracle最重要的高可用架构之一,具有扩展性良好、实现负载均衡等多维度的优势,Oracle RAC提供了相应的集群软件和存储管理软件,今天我...

2954
来自专栏皮振伟的专栏

[linux][memory]hugetlb和hugepage技术分析

前言: 乍一看,hugetlb和hugepage还挺像的,好像都是所谓的“大页”。然而,却很难说出来它们的差异。作者也是花了写时间翻翻代码,写了几个测试的例子,...

6527
来自专栏Python中文社区

听说 Django 与 celery 配合更美味

博客主页:https://www.zhihu.com/people/tu-dou-dou-27-10

1242
来自专栏大内老A

谈谈分布式事务之二:基于DTC的分布式事务管理模型[上篇]

通过上一篇的介绍,我们知道了SOA真正需要的是一个能够协调服务操作直接(通过服务自身访问的资源)或者间接(通过被调用服务访问的资源)访问的所有资源的分布式事务管...

1997
来自专栏java一日一条

数据库的读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务...

1043
来自专栏KK的小酒馆

Flutter 在macOS的安装步骤

Flutter至今为止,还是个比较新的跨平台方案,不过既然是谷歌推出的,我们空余时间就来研究下

2122
来自专栏cmazxiaoma的架构师之路

MySQL复制性能优化和常见问题分析

二进制日志文件并不是每次写的时候都会同步到磁盘,当发生宕机的时候,可能会有最后一部分数据没有写入到binlog中,这给恢复和复制带来了问题。当sync_binl...

1312
来自专栏云计算教程系列

如何在Ubuntu 14.04上配置Redis群集

Redis是一个开源键值数据存储,使用内存存储模型和可选的磁盘写入来实现持久性。它具有事务,发布/订阅和自动故障转移等功能。建议将Redis与Linux一起用于...

580

扫码关注云+社区

领取腾讯云代金券