Python、Django、datetime

Python、Django、datetime,python,django,datetime,Python,Django,Datetime,在我的模型中,我有两个datetime属性: start_date end_date 我想把结束日期计算为一周 在开始日期之后 我如何才能做到这一点?如果您总是希望结束日期比开始日期晚一周,那么您可以做的是为您的模型创建自定义保存方法。 >>> import datetime >>> start_date = datetime.datetime.now() >>> end_date = start_date + datetime.timed

在我的模型中,我有两个datetime属性:

start_date
end_date
我想把结束日期计算为一周 在开始日期之后


我如何才能做到这一点?

如果您总是希望结束日期比开始日期晚一周,那么您可以做的是为您的模型创建自定义保存方法。
>>> import datetime
>>> start_date = datetime.datetime.now()
>>> end_date = start_date + datetime.timedelta(7)
>>> print end_date
另一种选择是使用信号代替。结果是一样的,但是由于您正在处理模型数据,我建议您使用自定义保存方法。它的代码如下所示:

class ModelName(models.Model):
    ...

    def save(self):
        # Place code here, which is excecuted the same
        # time the ``pre_save``-signal would be
        self.end_date = self.start_date + datetime.timedelta(days=7)

        # Call parent's ``save`` function
        super(ModelName, self).save()

您可以在以下位置了解django文档中如何调用save方法/信号:

如果您总是希望结束日期在开始日期后一周,您可以做的是为您的模型创建一个自定义保存方法。 另一种选择是使用信号代替。结果是一样的,但是由于您正在处理模型数据,我建议您使用自定义保存方法。它的代码如下所示:

class ModelName(models.Model):
    ...

    def save(self):
        # Place code here, which is excecuted the same
        # time the ``pre_save``-signal would be
        self.end_date = self.start_date + datetime.timedelta(days=7)

        # Call parent's ``save`` function
        super(ModelName, self).save()

您可以在以下位置了解django文档中如何调用save方法/信号:

基本上只需在开始日期前添加7天,使用timedelta类基本上只需在开始日期前添加7天,使用timedelta类通常(但不总是)最好有开始时间和持续时间。通常(但并非总是)最好有一个开始时间和持续时间。如果你要使用datetime软件包,别忘了阅读如果你要使用datetime软件包,别忘了阅读