执行Django makemigrations时PostGIS相关OSMGeoAdmin导入错误
解决ImportError: cannot import name 'OSMGeoAdmin' from 'django.contrib.gis.admin'
问题根源
Django 4.0及更高版本中,OSMGeoAdmin已被移除,官方替换为OSMAdmin,你的代码仍在使用旧的导入名称,导致触发该错误。
修复操作
- 修改
core/admin.py中的导入语句:
将
替换为from django.contrib.gis.admin import OSMGeoAdminfrom django.contrib.gis.admin import OSMAdmin - 若你的代码中用
OSMGeoAdmin注册了地理模型(比如Land),同步更新注册代码:
例如将
改为admin.site.register(Land, OSMGeoAdmin)admin.site.register(Land, OSMAdmin)
补充说明
你配置的GDAL和GEOS路径是有效的,但本次报错与GIS库路径无关,完全是Django版本迭代后的API变更导致。
内容的提问来源于stack exchange,提问作者syed Mazhar
相关产品推荐
相关产品推荐

