当前位置: 代码迷 >> 综合 >> 创建时间和更新时间:default = timezone.now和auto_now = True
  详细解决方案

创建时间和更新时间:default = timezone.now和auto_now = True

热度:74   发布时间:2023-12-10 12:02:07.0

在现实生产环境中,往往希望对象的创建时间默认设置为当前值,但又希望日后可以修改它,如何实现这种需求的呢。
django中所有的model字段都拥有一个default参数,用来给字段设置默认值(上面的文档中有介绍)。
我们可以使用default=timezone.now()来替换auto_now=True或auto_now_add=True。
(default=timezone.now 对应 django.utils.timezone.now())
from django.db import models
import django.utils.timezone as timezone
class Test(models.Model):
add_date = models.DateTimeField(‘保存日期’,default = timezone.now)
mod_date = models.DateTimeField(‘最后修改日期’, auto_now = True
html页面从数据库中读出DateTimeField字段时,显示的时间格式和数据库中存放的格式不一致,比如数据库字段内容为2018-06-25 22:00:00,但是页面显示的却是Apr. 25, 2018, 10 p.m.
为了页面和数据库中显示一致,需要在页面格式化时间,需要添加{ { infor.updatetime|date:“Y-m-d H:i:s” }} 类似的过滤器。刷新页面,即可正常显示。

  相关解决方案