Is the set_cookie
variable the correct way to signal that the cookie should be set? It does not seems pythonic to me:
cookie = request.COOKIES.get(TIMEZONE_COOKIE_NAME)
set_cookie = False
if cookie and cookie in pytz.all_timezones_set:
timezone.activate(pytz.timezone(cookie))
elif request.ip:
geo = GeoIP2()
try:
time_zone = geo.city(request.ip).time_zone
if time_zone:
timezone.activate(pytz.timezone(time_zone))
set_cookie = True
except GeoIP2Error:
self.logger.warning('Could not determine time zone of ip address: %s', request.ip)
response = self.get_response(request)
if set_cookie:
response.set_cookie(TIMEZONE_COOKIE_NAME, time_zone)
return response