Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中,如何使用db time保存或更新datetime字段的datetime?_Python_Mysql_Django_Datetime - Fatal编程技术网

Python 在Django中,如何使用db time保存或更新datetime字段的datetime?

Python 在Django中,如何使用db time保存或更新datetime字段的datetime?,python,mysql,django,datetime,Python,Mysql,Django,Datetime,db“T”带有一个带有日期时间字段的表,例如 CREATE TABLE `exec_job` ( `job_id` int(11) NOT NULL AUTO_INCREMENT, `status` int(11) NOT NULL, `create_time` datetime NOT NULL, `finish_time` datetime NOT NULL, PRIMARY KEY (`job_id`) ) ENGINE=InnoDB DEFAULT CHARSET=u

db“T”带有一个带有日期时间字段的表,例如

CREATE TABLE `exec_job` (
  `job_id` int(11) NOT NULL AUTO_INCREMENT,
  `status` int(11) NOT NULL,
  `create_time` datetime NOT NULL,
  `finish_time` datetime NOT NULL,
  PRIMARY KEY (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在一台机器中,例如机器IP为192.168.0.100

我的Django应用程序“M”位于另一台机器中,例如机器IP为192.168.0.200, 应用程序M使用db T

当我将数据保存或更新到db时,我发现“创建时间”字段和“完成时间”字段使用192.168.0.200的时间来保存。 而,如何在Django应用程序代码中使用db time保存或更新datetime字段的datetime?

模型类如下所示:

class ExecJob(models.Model):
    JobId       = models.AutoField(db_column = "job_id", primary_key = True)
    Status      = models.IntegerField(db_column = "status", default = 0)
    CreateTime  = models.DateTimeField(db_column = "create_time", auto_now_add = True)
    FinishTime  = models.DateTimeField(db_column = "finish_time", auto_now = True)
    class Meta :
        db_table = "exec_job"
jobobj = ExecJob(
    #JobId = models.AutoField(db_column = "job_id", primary_key = True)
    Status      = 0,
    #CreateTime = ,               # be commented
    #FinishTime = timezone.now(), # be commented
)
jobobj.save()
应用程序代码如下所示:

class ExecJob(models.Model):
    JobId       = models.AutoField(db_column = "job_id", primary_key = True)
    Status      = models.IntegerField(db_column = "status", default = 0)
    CreateTime  = models.DateTimeField(db_column = "create_time", auto_now_add = True)
    FinishTime  = models.DateTimeField(db_column = "finish_time", auto_now = True)
    class Meta :
        db_table = "exec_job"
jobobj = ExecJob(
    #JobId = models.AutoField(db_column = "job_id", primary_key = True)
    Status      = 0,
    #CreateTime = ,               # be commented
    #FinishTime = timezone.now(), # be commented
)
jobobj.save()

您可以在模型类中创建以下方法

def save(self, *args, **kwargs):
    if not self.id:
        self.CreateTime = datetime.datetime.now()
    self.FinishTime = datetime.datetime.now()
    return super(ExecJob, self).save(*args, **kwargs)

您可以在模型类中创建以下方法

def save(self, *args, **kwargs):
    if not self.id:
        self.CreateTime = datetime.datetime.now()
    self.FinishTime = datetime.datetime.now()
    return super(ExecJob, self).save(*args, **kwargs)

“datetime.datetime.now()”能得到192.168.0.100的时间吗?@Vikas Neha OjhaNopes抱歉。我有点糊涂了。让我再做一次,然后发布一个合适的答案。你想只通过应用程序来做吗?你能在数据库中设置一些默认值吗?“创建时间”可以使用自动更新,但“完成时间”需要实时更新,我不知道mysql数据库是否可以实现此功能。“创建时间”可以在数据库中设置,但“完成时间”需要在app中更新。可以“datetime.datetime.now()”得到192.168.0.100的时间吗?@Vikas Neha OjhaNopes抱歉。我有点糊涂了。让我再做一次,然后发布一个合适的答案。你想只通过应用程序来做吗?你能在数据库中设置一些默认值吗?“创建时间”可以使用自动更新,但“完成时间”需要实时更新,我不知道mysql数据库是否可以实现此功能。“创建时间”可以在数据库中设置,但“完成时间”需要在app中更新。可以“datetime.datetime.now()”得到192.168.0.100的时间吗?@Vikas Neha OjhaNopes抱歉。我有点糊涂了。让我再做一次,然后发布一个合适的答案。你想只通过应用程序来做吗?你可以在数据库中设置一些默认值吗?创建时间可以使用自动更新,但是完成时间需要实时更新,我不知道mysql数据库是否可以实现这个功能。创建时间可以在数据库中设置,但是完成时间需要在app中更新。