I'm trying implement user based timezone to my Django app. I activated user timezone in middleware. In normal queries (like filter()
,all()
) everything is ok. In response, I can see timezone awarded data like that:
{"modified": "2020-03-11T09:59:18.904323+03:00"}
In some cases, I need to use values_list()
method. Unfortunately response returns without timezone converting like that:
{"modified": "2020-03-11T06:59:18.904323Z"}
I can convert data inside a loop but I think it is not a good approach.Did anyone meet this problem?
My middleware(It is working):
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