У меня есть start_date и end_date в моей таблице базы данных, как мне вернуть все записи, где текущая дата находится между этими двумя значениями? - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь проверить, активен ли в данный момент контракт, поэтому мне нужно проверить, находится ли текущая дата между датой начала и окончания контракта.

class Contract(models.Model):
    user = models.ForeignKey(User, on_delete = models.CASCADE)
    start_date = models.DateField(null = True, blank = True)
    end_date = models.DateField(null = True, blank = True)

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Ниже должно работать, чтобы получить контракты, где начальная дата - раньше или сегодня, а конечная дата - позже или сегодня.

lte == ниже или равно

gte == больше или равно

from django.utils import timezone

date_today = timezone.now().date()    
active_contract = Contract.objects.filter(start_date__lte=date_today, end_date__gte=date_today)
0 голосов
/ 20 декабря 2018

Вы можете сделать это

import datetime

today = datetime.date.today()
Contract.objects.filter(start_date__lte=today, end_date__gte=today)
...