Фильтрация поля DateTimeField по прошлым и будущим датам django
Моя проблема в том, что я делаю таймер до следующего события на сайте. События я храню в модели django. Делаю вывод даты в шаблоне, не знаю как сделать вывод событий по очереди. У меня получилось отфильтровать прошедшие даты в шаблоне, но я не могу сделать автоматическую смену события, когда прошло предыдущее событие. То есть до него осталось 00.00.00. Также я не могу вывести первый уже отфильтрованный элемент. Работает только {%if forloop.counter0 == 1%}, но это выводит элемент всего списка, а не элемент отфильтрованного списка. Я просто пытался вывести первое событие, в котором дата больше текущей. Я пытался использовать некоторые внутренние циклы после фильтрации, но у меня не получается. Я обращаюсь к вам с этой проблемой, потому что зашел в большой тупик. Буду очень благодарен за помощь. Была идея фильтровать события сразу в views.py с помощью filter, но я опять запутался. Я еще новичок в этом деле, но мне бы очень хотелось закончить этот проект.
Шаблон
Views.py
from django.shortcuts import render, redirect
from .models import Main_Image, Event
from datetime import date
def index(request):
image = Main_Image.objects.all()
date = Event.objects.all()
content = {'image': image, "date": date}
return render(request, 'Главная/Главная.html', content)
Models.py
from django.db import models
import os
class Event(models.Model):
namedate = models.CharField(max_length=120)
date = models.DateTimeField()
def __str__(self):
return self.namedate
Моя проблема все-таки была решена. Этот код помог мне:
Views.py
from datetime import datetime, timedelta
def index(request):
startdate = datetime.today()
enddate = startdate + timedelta(days=365)
date = Event.objects.filter(date__range=[startdate, enddate])
content = {"date": date}
return render(request, 'Главная/Главная.html', content)
шаблон и JS
{% if forloop.counter0 == 0 %}
...
if (days < "0" ) {
location.reload(); return false;
}