我正在保存上次访问页面的时间,自从我升级到Django 1.8后,我的所有日期都变得很糟糕......我真的,真的不明白。
我基本上有一个API被美国各地的自助服务终端计算机拨打,但我想知道自助服务终端是否在最后3分钟内办理了登机手续。我不关心它在哪个时区。
我有一个简单的datetimefield:
lastcheckintime = models.DateTimeField(blank=True, null=True, auto_now=False)
当调用API时,我只是保存它:
monitor.lastcheckintime = timezone.now()
使用调试日志,看起来它正在数据库中保存正确的UTC时间。我正在检查一台显示器是否在线:
@property
def is_online(self):
if self.lastcheckintime is None:
return False
time_threshold = timezone.now() - timedelta(minutes=3)
return self.lastcheckintime > time_threshold
在我升级之前,它曾经是完美的。我不知道是不是将Django升级到1.8或pytz本身,但现在它看起来像这样:
(在我的时区是晚上10点29分)
奇怪的是,这些线条发生了变化!它并不总是在错误的时间显示相同的显示器。此外,整个事情已经过了7个小时(我是格林威治标准时间-7)。任何其他模型看起来都能正常工作,我完全不知道为什么这个模型表现不正常。
对我可能错过的事情有任何想法吗?
谢谢!
答案 0 :(得分:0)
仍然无法理解发生了什么,但我最终创建了另一个具有确切属性的datetimefield并使用了这个,删除旧的lastcheckintime并且一切正常。
这仍然是一个谜...... 谢谢!