Python 我们可以要没有时区的Django DateTimeField吗?

Python 我们可以要没有时区的Django DateTimeField吗?,python,django,datetime,timezone,Python,Django,Datetime,Timezone,我已经搜索过了,但找不到任何注释或教程。当您在设置中设置USE_TZ=True(请参阅了解更多信息)时,Django会在数据库中存储UTC格式的日期和时间信息,否则它会存储原始日期时间(没有时区的日期时间) 为方便起见,django admin startproject创建的默认settings.py文件包括USE_TZ=True 因此,您必须在设置中设置使用_TZ=False,以避免附加时区 注意:但是您不能仅为特定字段分离时区。按照我上面的建议,可以将时区从整个数据库中分离出来,因此我认为最

我已经搜索过了,但找不到任何注释或教程。

当您在设置中设置
USE_TZ=True
(请参阅了解更多信息)时,Django会在数据库中存储UTC格式的日期和时间信息,否则它会存储原始日期时间(没有时区的日期时间)

为方便起见,django admin startproject创建的默认
settings.py
文件包括
USE_TZ=True

因此,您必须在设置中设置
使用_TZ=False
,以避免附加时区

注意:但是您不能仅为特定字段分离时区。按照我上面的建议,可以将时区从整个数据库中分离出来,因此我认为最好使用CharField来存储没有时区的日期

通过为模型定义保存方法,您可以尝试覆盖默认的保存处理程序,并在项目进入数据库之前从DatetimeField中删除时区:

def save(self, *args, **kwargs):
    self.datetime_field = self.datetime_field.replace(tzinfo=None)
    super(MyModel, self).save(*args, **kwargs)

我相信这是默认设置。@Andriy我希望日期和时间格式是“2016-03-09 6:51:43.195486”@Andriy我使用查询插入到表中(不使用django ORM),任何python函数都可以。@Sagar好的,在保存之前尝试将tz_信息替换为None,
datetime_field=datetime_field.replace(tzinfo=None)
@Andriy,这很好用。但在数据库(postgresql)中,我们得到了带有时区的时间戳,这需要类似于“没有时区的时间戳”,任何在迁移下的东西都不能来自外部迁移