【发布时间】:2016-06-23 10:01:07
【问题描述】:
我已经搜索过了,找不到任何笔记或教程。
【问题讨论】:
标签: python django datetime timezone
我已经搜索过了,找不到任何笔记或教程。
【问题讨论】:
标签: python django datetime timezone
当您在设置中设置USE_TZ = True(有关详细信息,请参阅USE_TZ)时,Django 以UTC 格式将日期和时间信息存储在数据库中,否则它将存储原始日期时间(没有时区的日期时间)。
为方便起见,django-admin startproject 创建的默认settings.py 文件包含USE_TZ = True。
因此您必须在设置中设置USE_TZ = False 以避免附加时区。
注意:但是,您不能仅针对特定字段分离时区。按照我上面的建议,您将时区从整个数据库中分离出来,所以我的猜测是最好使用 CharField 来存储没有时区的日期。
您可以尝试覆盖默认保存处理程序,并在 saving 项目进入数据库之前从 DatetimeField 中删除时区,方法是为您的模型定义保存方法:
def save(self, *args, **kwargs):
self.datetime_field = self.datetime_field.replace(tzinfo=None)
super(MyModel, self).save(*args, **kwargs)
【讨论】:
datetime_field = datetime_field.replace(tzinfo=None)