加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在GeoDjango Admin中禁用Openlayers映射

发布时间:2020-12-20 11:33:21 所属栏目:Python 来源:网络整理
导读:我正在使用Django 1.6和Postgres / PostGIS(GeoDjango).我注意到当我从1.5升级到1.6时,我无法再通过管理页面使用WKT添加空间数据.以前,我可以将要显示的几何体的WKT粘贴到文本框中.现在,当我转到管理页面时,会显示一个允许我编辑几何图形的地图,但我无法添加
我正在使用Django 1.6和Postgres / PostGIS(GeoDjango).我注意到当我从1.5升级到1.6时,我无法再通过管理页面使用WKT添加空间数据.以前,我可以将要显示的几何体的WKT粘贴到文本框中.现在,当我转到管理页面时,会显示一个允许我编辑几何图形的地图,但我无法添加数据.

是否有一个简单的修复程序,允许我禁用显示此地图?

解决方法

您可以使用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.

所以在你的情况下,你想要用普通的旧文本字段覆盖可爱的开放图层地图.以下内容将使用GeoModel模型中任何PointField的文本输入替换地图.

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 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读