我在不同的位置有两个单独的django服务器和一个mysql服务器
使用django模型,尝试创建/更新对象(如下代码所示)结果是具有相同django服务器本地时间值的3列。如何获取数据库服务器本地时间时,这样做。
我的模型:
class Test(models.Model):
id = models.AutoField(primary_key = True, null = False)
create = models.DateTimeField(auto_now_add=True)
update = models.DateTimeField(auto_now=True)
test = models.DateTimeField(null=True)
我的代码:
y = Test()
y.test = datetime.now()
y.save()
结果
id create update test
------ ------------------- ------------------- -------------------
6 2013-10-07 06:57:04 2013-10-07 06:57:04 2013-10-07 06:57:04
最佳答案
我认为如果不设置数据库时区,你就不能随心所欲。让我们看看你的每一次约会意味着什么:
create = models.DateTimeField(auto_now_add=True)
它自动将日期设置为添加时的时间。
update = models.DateTimeField(auto_now=True)
它自动将日期设置为启动进程的时间(web进程或命令)。
test = models.DateTimeField(null=True)
...
y.test = datetime.now()
它将日期设置为进程的时间(Django进程运行的地方)。
要获取数据库时间,可以将数据库的时区存储在settings中,并在必要时使用它。不能为此使用任何自动生成的字段。
另一个解决方案可能是在数据库上手动(通过原始查询)获取本地时间。
关于python - django模型使用数据库服务器的时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19219350/