如何解决管理部分的时间不匹配
我正在Django中构建一个应用程序,该应用程序托管在Heroku上。 我不得不在Heroku上重置数据库后开始出现问题。
应用程序通过API获取一些数据,然后将其与记录的时间和日期一起保存到模型中。 此模型以其对象名称显示时间和日期。
Last_update_time = models.DateTimeField(blank=False,null=False,default=timezone.now )
def __str__(self):
return "%s --- [ %s ]" % (self.Target_area_input_data.Name,datetime.strftime(self.Last_update_time,"%H:%M:%S %d-%m-%Y") )
然后将信息显示在模板中。
模板中显示的时间是正确的(对应于我的PC时钟显示的时间,在示例中为22:33),但是当我在Django admin中访问模型时,时间早了两个小时(20:33)在示例中)。
奇怪的是,当我访问对象字段视图时,时间是正确的(示例中为22:33)。
可能是什么问题?
在我的设置中,我有:
TIME_ZONE = 'Europe/Berlin'
USE_TZ = True
我试图改变
USE_TZ = False
仅导致对象字段视图中的时间比其他时间早两个小时(示例中为20:33),并显示消息“您比服务器时间早2小时”。
更新:
也许我错了,数据库重置与此错误无关。
但是,我可以确定,因为我已经设置了:
TIME_ZONE = 'Europe/Berlin'
USE_TZ = True
即使Django admin的模型对象列表视图以UTC格式显示时间,数据库也会为其对象显示正确的时间。 (我不确定是否可以设置出现在模型对象名称中的时间的时区。)
解决方法
实际上我错了:数据库重置与该错误无关。
事实证明,Django本身不允许更改管理员的时区,因为管理员使用的所有时间数据都具有相同的界标。就像所有管理员都应使用相同的度量单位一样。
但是,as suggested here可以为每个管理员用户设置时区,以便每个管理员都能看到根据其时区表示的admin部分的日期数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。