【问题标题】:DurationField or TimedeltaDurationField 或 Timedelta
【发布时间】:2019-07-23 21:46:03
【问题描述】:

我在尝试在我的待办任务中设置持续时间时遇到问题。

我已经尝试过 DurationField,有些人告诉我在你的 forms.py 中尝试 timedelta,但我不太清楚如何从我的两个模型 DateField(开始和结束)传递(6 天)之类的差异。

模型.py

from django.db import models
from datetime import datetime, timedelta



class To_do (models.Model):
    task = models.CharField(max_length=150)
    topic = models.CharField(max_length=150)
    how = models.TextField(max_length=600)
    start = models.DateField(default=datetime.today)
    end = models.DateField(blank=False)
    duration = models.DurationField(default=timedelta)

我想为用户显示差异,并在设置不到 3 天的闹钟等后显示。

我该如何解决这个问题?

【问题讨论】:

标签: python django django-models django-forms django-templates


【解决方案1】:

两个日期或日期/时间值之间的差异是 timedelta。

delta_time = end - start

或者,如果您需要从其他数字编码一个增量时间常数

from datetime import timedelta

my_delta = timedelta( days=3, hours=12, minutes=1 ) # half a week plus a minute

如果要导入,不要使用timedelta 作为默认值!如果您的意思是传递一个可调用函数来计算时间增量,请定义一个函数来执行此操作,并将其作为默认值传递。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 2015-06-22
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多