Пожалуйста, есть ли что-то, что я делаю неправильно, фильтрация на основе времени даты, пустой 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)