建议任何链接。我有很多搜索。我无法得到正确的笔记/教程。
答案 0 :(得分:11)
当您在设置中设置USE_TZ = True
(请参阅USE_TZ以获取更多信息)时,Django会在数据库中以UTC格式存储日期和时间信息,否则它将存储天真的日期时间(没有时区的日期时间) 。
settings.py
创建的默认django-admin startproject
文件包含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)