django-geoposition map widget 没有显示在我的生产服务器上的 django 管理中,但它在我



当我使用 django 测试服务器在笔记本电脑上测试所有内容时,django 地理位置小部件会显示在 admin 中。但是,当我将所有内容放到生产服务器上时,没有显示地图,也没有显示纬度和经度的标签。两种设置都使用 django == 2.1.7 和地理位置 == 0.3.0。生产服务器由nginx和gunicorn提供服务。

我打开浏览器检查窗口,结果发现在调用jQuery之前,django正在提供地理位置.js。所以我尝试直接在 geoposition.js 文件中调用 jQuery,但仍然没有小部件。然后我将所有内容恢复到原始阶段,现在我包括 js =(设置。STATIC_URL + "地理位置/地理位置.js")在 admin.py 的媒体类中。这导致我的测试服务器中出现了两个映射,但生产服务器中仍然没有映射。我添加了一个 if 语句,以便在未加载 jQuery 时它不会运行,因此在第一个地理位置上没有 jQuery 错误.js正在提供。我在文件中添加了一些 console.log() 语句,以便我可以看到它的位置,并且可以很好地进入主函数,但没有进入 $('.geopostion-widget').each(function() ...

当我查看 html 时,地图和纬度和经度值被包装在类 = "geoposition-widget" 的div 中,但是我的生产服务器没有这样的div,这说明为什么".geopostion-widget"函数没有做任何事情。它似乎在我的测试服务器上自动放入该div,这是应该做的,但不在我的生产服务器上。

关于为什么会发生这种情况的任何线索?我是否只需要在我的生产服务器上为管理员创建一个自定义表单,并将字段包装在 class = '.geopostion-widget' 的div 中?这似乎有点卡顿,因为它在我的测试服务器上工作正常。还是与它与枪角兽和nginx的食用方式有关?

在 github 上找到了答案 - https://github.com/philippbosch/django-geoposition/issues/83。

伊姆达里奥在底部的回答解决了这个问题。将地理定位包升级到imdario的地理定位包,带有"pip install django-geoposition-2",瞧 - 它有效。

最新更新