Python 管理部分中的时间不匹配
我正在Django创建一个应用程序,它托管在Heroku上。 我的问题是在我不得不在Heroku上重置数据库之后开始的 该应用程序通过API获取一些数据,然后将其保存到一个模型中,并带有记录的时间和日期。 此模型在其对象名称中显示时间和日期Python 管理部分中的时间不匹配,python,django,heroku,time,timezone,Python,Django,Heroku,Time,Timezone,我正在Django创建一个应用程序,它托管在Heroku上。 我的问题是在我不得不在Heroku上重置数据库之后开始的 该应用程序通过API获取一些数据,然后将其保存到一个模型中,并带有记录的时间和日期。 此模型在其对象名称中显示时间和日期 Last_update_time = models.DateTimeField(blank=False, null=False, default=timezone.now ) def __str__(self): return "%
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") )
然后,信息将显示在模板中
模板中显示的时间是正确的(它对应于我的电脑时钟显示的时间,在本例中为22:33),但当我在Django admin中访问我的模型时,它提前了两个小时(在本例中为20:33)
奇怪的是,当我访问objectfields视图时,时间正好(本例中为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本机不允许更改管理员的时区,因为管理员使用的所有时间数据都应该具有相同的地标。就像所有管理员都应该使用相同的度量单位一样
但是,可以为每个管理员用户设置一个时区,这样每个管理员都可以看到根据其时区表示的管理员部分的时间数据。实际上我错了:数据库重置与此错误无关 事实证明,Django本机不允许更改管理员的时区,因为管理员使用的所有时间数据都应该具有相同的地标。就像所有管理员都应该使用相同的度量单位一样 但是,可以为每个管理员用户设置时区,这样每个管理员都可以看到根据其时区表示的管理部分的时间数据