Как исправить 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}
)