django - 在 Django 上设置 geoip 时出错

标签 django geolocation geoip

我正在尝试使用 GeoIP 向网站添加地理定位。我按照 Django docs 上的说明进行操作,但我收到此错误:配置不当:导入中间件时出错中间件:“无法导入名称 GeoIP” 可能缺少什么?我已将地理定位功能添加为自定义中间件,如下所示:

from django.contrib.gis.utils import GeoIP

class LocationMiddleware(object):
    def process_request(self, request):
        g = GeoIP()
        ip = request.META.get('REMOTE_ADDR', None)
        if (not ip or ip == '127.0.0.1') and 
          request.META.has_key('HTTP_X_FORWARDED_FOR'):
            ip = request.META['HTTP_X_FORWARDED_FOR']
        if ip:
           city = g.city(ip)['city']
        else:
           # set default city

    return city

最佳答案

看来我终于找到了解决方案。导入语句应该是:

from django.contrib.gis.utils.geoip import GeoIP

关于django - 在 Django 上设置 geoip 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4896996/

相关文章:

python - 将 GeoIP 模块与 Nginx 和 UWSGI 结合使用

python - Django rest 框架使用 httpie 忽略丢失的 csrf token

python - “用户”对象在创建对象时没有属性 '__getitem__'

geolocation - 如何从IP地址确定邮政编码和城市?

android - 删除 Android 上的后台位置访问权限

javascript - 如何使用 Javascript 检测最近的服务器来测试延迟/ping 速度?

php - 我可以使用 geoip_country_code_by_name 向多个国家/地区提供特定内容吗?

python - 选择基于数据库值 Django 检查哪个单选按钮

python - 如何恢复上次迁移?

javascript - 如何将 map 以当前用户位置为中心(地理定位