Django Объект истечения срока действия

Я использую систему активации для проверки электронной почты пользователя и теперь в модели active_code я хочу видеть только те объекты, которые были созданы 120 секунд назад. Помогите мне пожалуйста!

def Activation_page(request):
if request.method == "POST":
    form = forms.Active(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        past_seconds = timezone.now().date() - timedelta(seconds=120)
        if active_code.objects.filter(email = request.session['email'] , code = data['num'] , expiration__gte=past_seconds).exists() :
            try:
                b = User.objects.get(email = request.session['email'])
                b.is_active = True
                b.save()
                return redirect('home:loginveiw')
            except:
                messages.error(request , 'error')
        else:
            messages.error(request , 'error_2')
else:
    form = forms.Active()
return render(request , 'home/activation.html' , {'form' : form})     

Я думаю, что использование функции date() является неправильным. Вы должны удалить ее и использовать только timezone.now() - timedelta(seconds=120). См. https://www.geeksforgeeks.org/python-datetime-timedelta-function/.

При использовании функции date() вы устанавливаете время сегодня, но в 00:00, поэтому, конечно, коды, принятые час назад, будут приняты.

Вернуться на верх