Я пытаюсь внедрить пользовательский часовой пояс в мое приложение 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