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

#Time

翻译整理自: simpleisbetterthancomplex.com

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

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)
<\>Python
  • auto_now_add在创建的时候设置字段为timezone.now()
  • auto_now 在每次调用save方法都会更新字段

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

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

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