首页 > 解决方案 > 如何修复此错误模块“django.http.request”没有属性“META”?

问题描述

我试图在我的 django 项目中获取访问者的 IP 地址,这是我遵循的代码。

from django.contrib.gis.geoip2 import GeoIP2


def add(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip

g = GeoIP2()
ip = add (request)
location = g.city(ip)
longitude = location["longitude"]
latitude = location["latitude"]
user_location = Point(longitude, latitude, srid=4326)

当我运行服务器时,出现以下错误,我不知道为什么

 module 'django.http.request' has no attribute 'META'

标签: pythondjangodjango-viewsgeoip

解决方案


django.http.request您可能在文件顶部导入了模块,因此名称request与同名变量冲突。看看 这个答案request在你的函数中应该是一个HttpRequest对象,而不是一个模块。


推荐阅读