【发布时间】:2014-12-01 18:48:26
【问题描述】:
我有一个这样的模型:
class Menu(models.Model):
version = models.BigIntegerField(blank=False, null=False)
local = models.ForeignKey(Local, db_column='id_local')
created = models.DateTimeField(auto_now_add=True, blank=True,db_column='created')
actived = models.DateTimeField(db_column='actived')
class Meta:
managed = False
db_table = 'menu'
当我创建了一个对象时;一切都很容易而且很好。但是我在更新“actived”时遇到了问题。我使用如下代码:
menu = Menu.objects.get(version=ver, local=local)
menu.actived = datetime.now()
menu.save()
激活的值是正确的;当我在 db (MySql, with utf-8 charset) 或模板中看到它时,值对应。但是“menu.created”的值更改为“menu.created - 1 HOUR”的对应值。
我不知道为什么;这就是我修改的所有代码。
【问题讨论】:
-
并不总是同一时间-1。每次我尝试更新活动时间;创建的日期时间发生了变化(数据库值减一,并用新值保存)
-
好的,我想我明白你在说什么了。听起来数据库格式和 Python 格式之间的转换存在一些问题,因此时间一直在偏移。可能是数据库或适配器的配置问题。听起来你有
USE_TZ=False?使用有意识的日期时间可能会解决这个问题。