Когда включена поддержка часовых поясов, слой базы данных ожидает получать только осведомленные даты и времени из вашего кода. Это предупреждение появляется, когда он получает наивную дату и время. Это указывает на то, что вы еще не закончили перенос кода для поддержки часовых поясов. проверьте документацию .
Вам необходимо изменить наивное время-дату на дату-время вашего часового пояса проекта, используя функцию make_aware()
. Для этого вы должны обновить свой код, как показано ниже.
from datetime import datetime, timedelta
from django.utils import timezone
class Generator:
def get_mytimezone_date(original_datetime):
new_datetime = datetime.strptime(original_datetime, '%Y-%m-%d')
tz = timezone.get_current_timezone()
timzone_datetime = timezone.make_aware(new_datetime, tz, True)
return timzone_datetime.date()
def __init__(self, start_date=None, end_date=None):
if end_date:
self.end_date = self.get_mytimezone_date(end_date)
else:
self.end_date = timezone.now().date()
if start_date:
self.start_date = self.get_mytimezone_date(start_date)
else:
self.start_date = self.end_date - timedelta(days=7)
def get_query(self, d):
query = MyModel.objects.filter(
d__in=d,
created__gte=start_date,
created__lte=end_date
)
return query
Надеюсь, это поможет вам:)