我正在使用带有Postgres/PostGIS (GeoDjango)的Django 1.6。我注意到当我从1.5升级到1.6时,我无法再通过管理页面添加WKT的空间数据。以前,我可以将要显示的几何图形的WKT粘贴到文本框中。现在,当我进入管理页面时,会显示一个地图,它确实允许我编辑几何图形,但我不能添加数据。
是否有一种简单的解决方法可让我禁用此地图的显示?
是否有一种简单的解决方法可让我禁用此地图的显示?
因此,在您的情况下,您需要使用普通的文本字段来覆盖可爱的开放式图层地图。以下内容将为 GeoModel 模型中的任何 PointField 替换地图为文本输入框。ModelAdmin.formfield_overrides
这提供了一种快速简便的方法,用于在管理界面中重写 Field 选项。 formfield_overrides 是一个字典,将字段类映射到要在构建时传递给字段的参数字典。
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)
你可能会发现使用文本区域可以更轻松地阅读WKT,所以将第二个导入更改为:
from django.forms.widgets import Textarea
在覆盖方法中使用它,而不是TextInput:
models.PointField: {'widget': Textarea }