Часовые пояса и фильтры в Django Rest Framework

У нас есть игра, в которой мы отслеживаем ежедневные, еженедельные и ежемесячные таблицы лидеров. Большинство пользователей находятся в США, поэтому мы стараемся, чтобы ежедневные, еженедельные и ежемесячные таблицы обновлялись примерно в американском часовом поясе.

Итак, наша установка довольно проста.

# models.py
class PackGameSavedPack(auto_prefetch.Model):
    date = models.DateTimeField(null=True, blank=True)
    user_name = models.CharField(max_length=120, null=True)
    pack_score = models.IntegerField(null=True)

# save_pack.py
def pack_game_save_pack(user_id, user_name, pack_score=None):
    pack = PackGameSavedPack.objects.create(
        user_id=user_id,
        date=timezone.now(),
        user_name=user_name,
        pack_score=pack_score,
    )

#views.py
class PackGameFilter(django_filters.FilterSet):
    user_id = CharInFilter(field_name='user_id', lookup_expr='in')
    date_range = DateRangeFilter(field_name='date')

По большей части, это работает отлично - за исключением сохранения всех дат в формате UTC (O offset).

Мы установили параметры USE_TZ и TIME_ZONE в файле settings.py, однако, похоже, это ничего не изменило.

USE_TZ = True
TIME_ZONE = "America/Los_Angeles"`

Я знаю, что могу корректировать даты/время на уровне сериализатора, однако это не поможет с DateRangeFilter, так как он использует часовой пояс UTC (смещение 0).

Как я могу получить DateRangeFilter, используя TIME_ZONE или как лучше к этому подойти?

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