Django:如何让DateTimeField强制使用服务器时间?
问题解答
这是开发环境使用本地服务器导致的结果:
- 你在本地运行Django开发服务器(比如执行
python manage.py runserver)时,服务直接跑在你的本地电脑上,auto_now_add=True的逻辑是获取当前服务器的系统时间,自然就取到了你本地电脑的时间。 - 当你修改本地电脑时间后,服务器的系统时间同步变化,新创建的实例的
date_time字段值也会跟着改变。
- 你在本地运行Django开发服务器(比如执行
DateTimeField的
auto_now_add默认机制本身是获取当前运行服务器的系统时间,并非固定绑定"本地时间"。如果把项目部署到远程服务器,这个字段就会自动取远程服务器的系统时间,和你本地电脑的时间完全无关。
补充:你设置的blank=True, null=True和这个时间赋值问题没有关联,auto_now_add=True会自动填充时间,只有当你显式传入date_time=None时,才会触发null属性的逻辑。
内容的提问来源于stack exchange,提问作者webmar
相关产品推荐
相关产品推荐

