<p>您需要重写表单<code>Widget</code>。示例:</p>
<pre><code>from django.contrib import admin
from django.contrib.gis.db import models
from django.contrib.gis.forms.widgets import BaseGeometryWidget
class CustomOpenLayersWidget(BaseGeometryWidget):
template_name = 'gis/openlayers.html'
def __init__(self, attrs=None):
super(CustomOpenLayersWidget, self).__init__(attrs)
class Media:
js = (
'https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js',
'gis/js/OLMapWidget.js',
)
class CustomModelAdmin(admin.ModelAdmin):
"""Need to change default URL of OpenLayers"""
formfield_overrides = {
models.PointField: {"widget": CustomOpenLayersWidget},
models.PointField: {"widget": CustomOpenLayersWidget},
models.PolygonField: {"widget": CustomOpenLayersWidget},
models.LineStringField: {"widget": CustomOpenLayersWidget},
# Adding other models Fields if need
}
</code></pre>
<p>更改管理类</p>
^{pr2}$
<p>模型示例</p>
<pre><code>class Position(models.Model):
point = models.PointField(blank=False)
</code></pre>
<p>代码覆盖字段将小部件形成新的媒体iten。这将删除媒体的http内容<code>http://openlayers.org/api/2.13.1/OpenLayers.js</code>。在</p>