Django преобразование часового пояса не работает в DateTimeField с values_list - PullRequest
1 голос
/ 11 марта 2020

Я пытаюсь внедрить пользовательский часовой пояс в мое приложение Django. Я активировал часовой пояс пользователя в промежуточном программном обеспечении. В обычных запросах (например, filter(), all()) все в порядке. В ответ я вижу такие данные о часовых поясах:

{"modified": "2020-03-11T09:59:18.904323+03:00"}

В некоторых случаях мне нужно использовать метод values_list(). К сожалению, ответ возвращается без преобразования часового пояса следующим образом:

{"modified": "2020-03-11T06:59:18.904323Z"}

Я могу преобразовать данные внутри al oop, но я думаю, что это не очень хороший подход. Кто-нибудь сталкивался с этой проблемой?

Мой промежуточное программное обеспечение (работает):

class TimezoneMiddleware(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if request.user.is_authenticated:
            tz_str = request.user.time_zone
            if tz_str:
                timezone.activate(pytz.timezone(request.user.time_zone))
            else:
                timezone.activate(pytz.utc)
                request.user.time_zone = pytz.UTC.__str__()
        else:
            timezone.deactivate()

        response = self.get_response(request)
        return response
...