django map widget控制台显示DjangoGooglePointFieldWidget Uncaught ReferenceError

Axi*_*xil 6 python django google-maps postgis

我正在尝试实现django地图小部件 https://github.com/erdem/django-map-widgets

但是没有地图出现,我在浏览器控制台中有这个

Uncaught ReferenceError: DjangoGooglePointFieldWidget is not defined
Run Code Online (Sandbox Code Playgroud)

在settings.py中,我有

INSTALLED_APPS = [
...
    'mapwidgets',
]

MAP_WIDGETS = {
    "GoogleStaticMapWidget": (
        ("zoom", 15),
        ("size", "320x320"),
    ),
    "GoogleStaticMapMarkerSettings": (
        ("color", "green"),
    ),
    "GOOGLE_MAP_API_KEY": "AIzaSyA1fXsJSKqZH_Bl9d9wueJMlpXd-6tEJy0"
}
Run Code Online (Sandbox Code Playgroud)

在我的model.py中

class CompanySettingEdit(forms.ModelForm):
     display_companyname = forms.CharField(label='Display Company Name', max_length=50, required=True)
    class Meta:
        model = Company
        fields = ("display_companyname","location_point")

        widgets = {
            'location_point': GooglePointFieldWidget,
        }
Run Code Online (Sandbox Code Playgroud)

更新:我在settings.py中的静态文件配置

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "../projectapp/static"),
)

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, '../../../static_root')
Run Code Online (Sandbox Code Playgroud)

在运行python manage.py collectstatic之后,静态文件被复制到另一个目录static_root - https://imgur.com/a/TmhYr.请注意,mapwidgets目录不在原始项目静态目录中.即时运行开发,我注意到bootstrap静态文件正在使用静态目录中的文件而不是static_root

我错过了什么吗?我需要在模板中加载任何东西吗?

Ade*_*lin 5

之前遇到过这种情况。可能的解决方案:

  1. 确保您运行python manage.py collectstatic以便将第三方静态文件复制到STATIC_ROOT(更多在他们的自述文件中)
  2. 如果您在开发模式下运行,则必须为urls(Helper link #1 and #2 )添加静态文件服务视图
  3. 确保您的模板在您的基本 html中的标签中或末尾的{{form.media}}某处。(例子)<head><body>