Python 在Django中,如何使用db time保存或更新datetime字段的datetime?
db“T”带有一个带有日期时间字段的表,例如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
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中更新。