def get_location(request, default=MINSK): location = request.session.get("location", None) if location and len(str(location[0])) < 4: return location remote_addr = request.META["REMOTE_ADDR"] if remote_addr == "127.0.0.1": request.session["location"] = default request.session["django_timezone"] = pytz.timezone("Europe/Minsk") return default gi = GeoIP.open(settings.GEOIP_CITY, GeoIP.GEOIP_INDEX_CACHE | GeoIP.GEOIP_CHECK_CACHE) geoip = gi.record_by_name(remote_addr) if not geoip: request.session["location"] = default return default time_zone = geoip.get("time_zone", None) if time_zone: request.session["django_timezone"] = pytz.timezone(time_zone) country = geoip.get("country_name", None) if country: request.session["country"] = country country_code = geoip.get("country_code", None) if country_code: request.session["country_code"] = country_code city = geoip.get("city", None) if city: request.session["city"] = city lat = geoip.get("latitude", None) lng = geoip.get("longitude", None) request.session["location"] = [lat, lng] else: request.session["city"] = "Minsk" request.session["location"] = default # wtf ? return request.session["location"]