使用geoip2进行时区查找

时间:2017-04-18 21:10:32

标签: django timezone maxmind geoip2

django.contrib.gis.geoip2框架暴露了一个高级地理位置api。我想用它来查找用户时区,但查询不会返回时区,尽管maxmind documetion表示他们的数据库包含它们。我错过了什么或者怎么可能这样做?

2 个答案:

答案 0 :(得分:3)

time_zone似乎是MaxMind GeoIP2 API中geoip2.records.Location类的字段。

在Django包装器上,响应定义为here,并且不会转发time_zone字段。

您可以在包装器中添加一行简单的行:

    'time_zone': response.location.time_zone,

我确定他们会欣赏拉取请求。 :)

答案 1 :(得分:1)

下面的类超越GeoIP2类以显示时区信息。可能有用,直到/如果它被添加到基类中(如果没有人首先尝试,它会尽快为它提高PR)

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