Django queryset Datefield сравнение с сегодняшним днем

У меня есть модель, в которой есть начальная("inicia") и конечная("finaliza") дата, и мне нужно узнать, находится ли сегодняшний день между этими датами:

модель:

class Promos(models.Model):
    nombre = models.CharField(max_length=20)
    codigo = models.CharField(max_length=10, blank=True, null=True)
    aplica_codigo = models.BooleanField(default=False)
    descuento = models.FloatField()
    porciento = models.BooleanField(default=False)
    inicia = models.DateField()
    finaliza = models.DateField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

"inicia" и "finaliza" - это поля дат, с которыми я хочу свериться сегодня

Я пробовал следующее:

today = date.today()
Promos.objects.filter(codigo = codigo_forma, inicia__gte = today,finaliza__lte=today).exists()

печатаю вот что:

today = 2022-08-25

print((Promos.objects.filter(codigo = codigo_forma).values("inicia", "finaliza")))

<QuerySet [{'inicia': datetime.date(2022, 8, 23), 'finaliza': datetime.date(2022, 11, 30)}]>

Результат полного набора запросов пуст: <QuerySet []>

Я не могу понять, какой правильный формат мне нужен для сравнения сегодняшнего дня с полями даты модели.

Вы перепутали gte и lte. Ваш код проверяет, что inicia находится после сегодня, а finaliza - до сегодня. Вы хотите поменять их местами, например, так:

today = date.today()
Promos.objects.filter(codigo=codigo_forma, inicia__lte=today, finaliza__gte=today).exists()
Вернуться на верх