Как исправить RuntimeWarning: DateTimeField Question.date_time получило наивный datetime?

Я хочу удалить записи 60 секундной давности, но получаю эту ошибку

RuntimeWarning: DateTimeField Question.date_time получило наивное время даты (2022-08-27 16:09:30.659947) при активной поддержке часовых поясов.

def delete(self,request):
    expiry_date_time = datetime.now() - timedelta(seconds=60)
    print('Expiry time = ',expiry_date_time)
    count = Question.objects.filter(date_time__gte = expiry_date_time).delete()
    User.objects.all().update(total_question_added=0)
    resp = {'resp' : 'All questions deleted.','Total question deleted':len(count)}
    return Response(resp)

используйте timezone.now() [Django-doc] вместо этого, это добавит часовой пояс к метке времени:

from django.http import JsonResponse
from django.utils.timezone import now

# …

def delete(self, request):
    expiry_date_time = now() - timedelta(seconds=60)
    count, __ = Question.objects.filter(date_time__gte=expiry_date_time).delete()
    User.objects.update(total_question_added=0)
    return JsonResponse(
        {'resp': 'All questions deleted.', 'Total question deleted': count}
    )
Вернуться на верх