gpt4 book ai didi

python - django 模型使用数据库服务器时间

转载 作者:行者123 更新时间:2023-11-29 00:25:18 25 4
gpt4 key购买 nike

我在不同的位置有 2 个独立的 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

最佳答案

如果你在 Django 中处理这个,django 会在将数据保存到数据库之前设置这些字段。在这种情况下,Django 将根据您的应用程序服务器(django 运行的服务器)设置时间。

您必须对 MySql 安装进行一些设置(如果您尚未设置)。然后你必须重新创建你的表或在你的数据库中改变它们(我猜 Django 模型定义不能处理这个)。这是 how-to doc explaning these settings

一个示例 sql CREATE TABLE 语句看起来像这样

CREATE TABLE test_test (
create DATETIME DEFAULT CURRENT_TIMESTAMP,
update DATETIME DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
)

如果您已经在 yotr 表中有数据,那么您可以执行 ALTERs 而不是重新创建表。

然后您必须编辑您的模型并将相关的日期时间字段设置为空,以便 MySql 可以设置它们。

class Test(models.Model):
id = models.AutoField(primary_key = True, null = False)
create = models.DateTimeField(null=True)
update = models.DateTimeField(null=True)
test = models.DateTimeField(null=True)

关于python - django 模型使用数据库服务器时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19219350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com