Пожалуйста, есть ли что-то, что я делаю неправильно, фильтрация на основе времени даты, пустой QuerySet.

я получил пустой QuerySet<[]>, я хотел бы убедиться, что мои модели фильтруются, прежде чем продолжить, но похоже, что queryset из SubscribeEmailModel, отфильтрованный по topic__startdate, выходит как пустой запрос

here is my models.py 

 class Lesson(models.Model):
    name = models.CharField(max_length=234)
    startdate = models.DateField(auto_now=True)

 class SubscribeEmailModel(models.Model):
       topic = models.ForeignKey(Lesson)
<
  class AutoSendNotification(ListView):
    subscriber =SubscribeEmailModel.objects.filter(topic__startdate=datetime.datetime.today(), 
          sent_mail=False)
         print(subscriber)

      model = SubscribeEmailModel
      context_object_name = 'subscriber'
      template_name = 'superadmin/email/auto-send.html'

Вы пытаетесь отфильтровать точное время с текущим временем, которое может не совпадать.

Если вы пытаетесь отфильтровать по дате, то установите topic__startdate__date в filter

today = datetime.datetime.today().date()
subscriber = SubscribeEmailModel.objects.filter(topic__startdate__date=today, sent_mail=False)

Если вы пытаетесь отфильтровать данные на основе даты меньше или больше, то установите topic__startdate__gt или topic__startdate__lt в filter

today = datetime.datetime.today()
subscriber = SubscribeEmailModel.objects.filter(topic__startdate__lt=today, sent_mail=False)

Вы получаете дату, включая временную метку, что может вызвать проблему.

просто убедитесь, что у вас есть данные, созданные на текущую дату. попробуйте это

from datetime import date

today = date.today()
subscriber =SubscribeEmailModel.objects.filter(topic__startdate=today, 
          sent_mail=False)
Вернуться на верх