【问题标题】:Calculate DateField until days in Django在 Django 中计算 DateField 直到天数
【发布时间】:2015-10-04 14:40:33
【问题描述】:

Django 模型有一个 m.created DateTimeField,如何根据已知天数 7、8、90 计算过期日期。

例如,如果 m.created 日期时间戳是今天的 + 有效天数为 30,过期日期字段应为从现在起 30 天。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    为您的模型类添加自定义保存方法。下面的示例代码将仅在创建时自动计算到期日期。记录的后续修改不会触发此自动计算。

    class ModelName(models.Model):
        created = models.DateTimeField()
        expired = models.DateTimeField(blank=True, null=True)
    
        def save(self, *args, **kwargs):
            if not self.pk:
                self.expired = self.created + datetime.timedelta(days=30)
            super(ModelName, self).save(*args, **kwargs)
    

    【讨论】:

      【解决方案2】:

      如果您想使用上述解决方案,您的代码最好使用信号: https://docs.djangoproject.com/en/1.8/ref/signals/#post-save

      【讨论】:

        猜你喜欢
        • 2021-06-11
        • 1970-01-01
        • 2019-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多