如何自动为django模型中的日期时间字段添加时间?

时间:2017-04-17 21:27:18

标签: python django datetime

我有一个带有start_datetimeend_datetime的Django模型。这一切都很好,除了我将数据保存到模型中时,它将其保存为2017-04-19 00:00:002017-04-29 00:00:00。我希望能够自动将其保存为2017-04-19 00:00:002017-04-19 23:59:59,而无需再次接受用户输入。

我的模特:

class ProductNotes(models.Model):
    start_datetime = models.DateTimeField('Start Date', null=True, blank=True)
    end_datetime = models.DateTimeField('End Date', null=True, blank=True)

我该怎么做?

1 个答案:

答案 0 :(得分:1)

嗯,我认为您的问题有很多选择,但最直接的解决方案是在用户执行操作时节省当前时间,

尝试一下:

import datetime

def some_view(request):
    # some view actions
    product_notes_objet.end_datetime = datetime.datetime.now()

换句话说,也许您可​​能对每次更新对象时自动更新的字段感兴趣,以便:

updated_at = models.DateTimeField(auto_now=True)

修改

如果您想在23:59:59保存当前日期,可以执行以下操作:

# getting current date with format mm/dd/YYYY
current_date = datetime.datetime.strftime(datetime.datetime.now().date(), "%m/%d/%Y")

# creating a datetime from curret date at the time 23:59:59
current_date_at_235959 = datetime.datetime.strptime(current_date+" 23:59:59", "%m/%d/%Y %H:%M:%S")

# saving the datetime created
product_notes_objet.end_datetime = current_date_at_235959
product_notes_objet.save()

也许其他方式可能会将您的save方法覆盖到您的模型或使用信号