我将 Django 1.6 与 Postgres/PostGIS (GeoDjango) 一起使用。我注意到当我从 1.5 升级到 1.6 时,我无法再通过管理页面使用 WKT 添加空间数据。以前,我可以将要显示的几何图形的 WKT 粘贴到文本框中。现在,当我进入管理页面时,会显示一个 map ,允许我编辑几何图形,但我无法添加数据。
是否有一个简单的修复程序可以让我禁用显示此 map ?
最佳答案
您可以使用 覆盖任何管理表单中使用的小部件formfield_overrides .
来自 https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides
ModelAdmin.formfield_overrides
This provides a quick-and-dirty way to override some of the Field options for use in the admin. formfield_overrides is a dictionary mapping a field class to a dict of arguments to pass to the field at construction time.
因此,在您的情况下,您希望使用纯旧文本字段覆盖可爱的开放图层 map 。以下内容将使用 GeoModel 模型中任何 PointField 的文本输入替换 map 。
from app.models import GeoModel
from django.forms.widgets import TextInput
from django.contrib.gis.db import models
from django.contrib import admin
class DirectAdmin(admin.ModelAdmin):
formfield_overrides = {
models.PointField: {'widget': TextInput }
}
admin.site.register(GeoModel, DirectAdmin)
您可能会发现 Textarea 使阅读 WKT 变得更加容易,因此将第二个导入更改为:
from django.forms.widgets import Textarea
并在覆盖中使用它而不是 TextInput:
models.PointField: {'widget': Textarea }
关于python - 在 GeoDjango Admin 中禁用 Openlayers map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631049/