Django DateTimeField与DateField参数详解:auto_now与auto_now_add

陆景行
陆景行
发布时间:2026-10-14| 6人浏览过
原创

本文详解Django中DateTimeField和DateField的配置方法,重点解析auto_now与auto_now_add两个布尔参数的行为差异。通过对比创建时间与修改时间的自动更新机制,说明其对editable和blank属性的影响,以及Admin后台的只读表现,帮助开发者正确实现时间戳管理。

DateTimeField

该字段用于存储日期和时间,其Python数据类型对应为datetime.datetime实例。


例如,数据库中存储的具体格式可能为2018-08-30 16:31:00。

此字段提供两个可选的布尔类型参数: 参数1:auto_now,默认值为false。当设置为true时,每次执行save()操作保存模型时,该字段会自动更新为当前时间。这意味着每次修改模型实例,该字段值都会自动刷新。 使用场景:适用于需要记录“最后修改时间”的场景。 注意:设置为true并不意味着设置字段的默认值为当前时间,而是强制在每次保存时更新为当前时间。此时无法在程序中手动为该字段赋值;若使用Django自带的Admin管理界面,该字段将显示为只读状态。

参数2:auto_now_add,默认值为false。当设置为true时,仅在模型对象首次创建时,将该字段的值设置为创建时的时间。后续对该对象进行修改时,该字段值保持不变。

使用场景:通常用于记录“创建时间”。

注意:一旦设置为True,程序中将无法手动为该字段赋值,且在Admin管理界面中该字段也会变为只读。

当auto_now或auto_now_add被设置为True时,字段会自动具备editable=False和blank=True的属性。其中,editable=False意味着该字段不会出现在Admin表单中;blank=True表示允许在表单提交时不输入该值。

DateField

该字段仅用于存储日期,其Python数据类型对应为datetime.date实例。


例如,数据库中存储的具体格式可能为2018-08-30。

此字段同样提供两个可选的布尔类型参数: 参数1:auto_now,默认值为false。当设置为true时,每次执行save()操作保存模型时,该字段会自动更新为当前时间。这意味着每次修改模型实例,该字段值都会自动刷新。 使用场景:适用于需要记录“最后修改时间”的场景。 注意:设置为true并不意味着设置字段的默认值为当前时间,而是强制在每次保存时更新为当前时间。此时无法在程序中手动为该字段赋值;若使用Django自带的Admin管理界面,该字段将显示为只读状态。

参数2:auto_now_add,默认值为false。当设置为true时,仅在模型对象首次创建时,将该字段的值设置为创建时的时间。后续对该对象进行修改时,该字段值保持不变。

使用场景:通常用于记录“创建时间”。

注意:一旦设置为True,程序中将无法手动为该字段赋值,且在Admin管理界面中该字段也会变为只读。

当auto_now或auto_now_add被设置为True时,字段会自动具备editable=False和blank=True的属性。其中,editable=False意味着该字段不会出现在Admin表单中;blank=True表示允许在表单提交时不输入该值。

以上就是关于Django中DateTimeField和DateField实现的介绍,更多相关Django DateTimeField和DateField内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。