1

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
kamilyrb
  • 2,502
  • 3
  • 10
  • 25

0 Answers0