【问题标题】:check if today is due date django检查今天是否是到期日 django
【发布时间】:2020-09-13 19:05:08
【问题描述】:

我有一个这样的模型

class Tasks(models.Model):
    title = models.CharField(max_length=100,null=True,blank=True)
    due_date_time= models.DateTimeField(default=timezone.now)

由于截止日期是一个日期和时间字段,我如何检查今天是否是此任务的截止日期,同时我正在节省时间和日期

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您可以使用__date lookup [Django-doc]:

    from django.utils.timezone import now
    
    Tasks.objects.filter(
        due_date_time__date=now().date()
    )

    或者,如果您使用时区,则可以使用范围检查:

    from datetime import timedelta
    from django.utils.timezone import now
    
    today = now().replace(hour=0, minute=0, second=0, microsecond=0)
    tomorrow = today + timedelta(days=1)
    
    Tasks.objects.filter(
        due_date_time__gte=today,
        due_date_time__lt=tomorrow
    )

    注意:通常 Django 模型被赋予一个单数名称,所以Task而不是Tasks

    【讨论】:

    • @new1122:您是否在关键字部分添加了__date
    • 我完全按照你的解决方案做了,看来我正面临这个stackoverflow.com/questions/42701151/…
    • @new1122:这是有道理的,因为如果您使用时区,“同一日期”的定义有点“模糊”。毕竟时间戳可以在不同的日期,具体取决于确切的时区。
    • 所以我必须做 USE_TZ = False ?
    • @new1122:启用时区后,您可以创建一个时间范围,例如 UTC 日期。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多