通过Https的OpenLayersWidget和Django Admin Maps

som*_*dev 2 python mapping django django-admin geodjango

我仍然是Django/Python用户的新手,所以对基本问题道歉.

我遇到了一个问题,我的Django管理员没有显示地图.我希望通过在OpenLayersWidget我的forms.py项目文件中添加类来解决这个问题,在Django文档中引用:https://docs.djangoproject.com/en/1.9/ref/contrib/gis/forms-api/#django. contrib.gis.widgets.OpenLayersWidget.见下文.

from django import forms
from django.contrib.gis.admin.widgets import OpenLayersWidget

class OpenLayersWidget(forms.TextInput):
    """Specifying CDN of openlayers.js in the Media class."""

     class Media:
         js = (
             'https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1',
         )   
Run Code Online (Sandbox Code Playgroud)

我确信这太简单了.

不幸的是,上述内容不适用于https.有任何想法吗?

psy*_*ok7 6

试试这个:

from django.contrib.gis import admin as gis_admin

class SecureOSM(gis_admin.OSMGeoAdmin):
    openlayers_url = 'https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js'
Run Code Online (Sandbox Code Playgroud)

然后从这里继承

更新

https cloudflare url已成为Django 1.11的默认设置.因此不再需要修补.