Reputation:
The django.contrib.gis.geoip2
framework expose a high level geolocation api. I want to use it to look up the user timezone, but the queries do not return the timezone, although the maxmind documetion says that their databases include them. Am I missing something or how could this be done?
Upvotes: 3
Views: 1191
Reputation: 14580
The class below over-rides the GeoIP2
class to expose timezone info. Could be useful until / if it's added in the base class (will try to raise a PR for it soon if nobody gets to it first)
from django.contrib.gis.geoip2 import GeoIP2
class GeoipWithTimezone(GeoIP2):
def timezone(self, query):
enc_query = self._check_query(query, city=True)
return self._city.city(enc_query).location.time_zone
Upvotes: 1
Reputation: 241890
It would appear that time_zone
is a field on the geoip2.records.Location
class in the MaxMind GeoIP2 API.
On the Django wrapper, the response is defined here, and does not forward the time_zone
field along.
You could add a line to the wrapper that is simply:
'time_zone': response.location.time_zone,
I'm sure they would appreciate a pull request. :)
Upvotes: 3