【问题标题】:Calculate due date in django在 django 中计算截止日期
【发布时间】:2018-04-04 09:28:50
【问题描述】:

我正在使用 django 创建一个“图书馆”网站。

一旦用户发行了一本书,我想计算它的到期日期,即发行/当前日期后 3 个月。

我该怎么做?

【问题讨论】:

  • 你要求它深入思考

标签: python django datetime


【解决方案1】:

您需要为跟踪图书交易的模型覆盖 save 方法。

from datetime import datetime, timedelta

class BookTransaction(models.Model):
    ...
    def save(self, *args, **kwargs):
        # if first time creating transaction (as opposed to on update)
        if not self.id:             
            self.due_date = datetime.now() + timedelta(months=3)

        # call and return default save method after custom rule
        return super(Base, self).save(*args, **kwargs)

【讨论】:

    【解决方案2】:

    我假设您正在谈论在数据库列上设置自动值。

    This link 几乎完全正确地回答了您的问题。请务必记下您使用的 Django 版本。

    【讨论】:

      【解决方案3】:

      使用datetime 模块,您可以非常轻松地添加 90 天的时间增量:

      >>> import datetime
      
      >>> print datetime.datetime.now()
      2017-10-23 19:24:19.549670
      >>> print datetime.datetime.now() + datetime.timedelta(days=90)
      2018-01-21 19:24:21.583689
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多