Python: Обратный отсчет времени

У меня проблема с обратным отсчетом. Вот код, который я использую, и он просто показывает статический обратный отсчет, он будет меняться, только если я обновлю страницу. Я хочу, чтобы он был таким: 0d 0h 1m 3s, 0d 0h 1m 2s и так далее. Я пробовал использовать for i in range, но кажется, что он принимает только целые числа? Но моя переменная - дата, поэтому она выдает ошибку. Как я могу сделать это возможным? Заранее спасибо!

views.py

def dateDiffInSeconds(date1, date2):
    timedelta = date2 - date1
    return timedelta.days * 24 * 3600 + timedelta.seconds

def daysHoursMinutesSecondsFromSeconds(seconds):
    minutes, seconds = divmod(seconds, 60)
    hours, minutes = divmod(minutes, 60)
    days, hours = divmod(hours, 24)
    return (days, hours, minutes, seconds)

def registration(request)
    access = WebsiteSettings.objects.all()
    now = datetime.datetime.today().replace(tzinfo=pytz.UTC)
    for item in access:
        countdown = "%dd %dh %dm %ds" % daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, item.date_open))
        sleep(1)
        return render(request, 'registration.html', {'countdown': countdown})
Вернуться на верх