python - 在 GeoDjango Admin 中禁用 Openlayers map

标签 python django django-admin maps geodjango

我将 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/

相关文章:

Django ImageField 和 BinaryField 如何处理图像

Django REST框架: Validate before a delete

javascript - 试图在 django admin 中显示/隐藏 change_list 过滤器

python - 将列表表示为带有双引号的字符串,而不是 JSON 的单引号

django - 删除具有 ImageField 字段的对象时未删除图像文件

python - pyyaml 看起来已经过时了

django - Django i18n:如何不翻译管理网站?

django - 通过 Django Admin 中的内联显示编辑/添加外键对象

python - Pandas :增加日期时间

python - 如何解决pip WeasyPrint安装后的Cairo和Pango版本问题?