簡體   English   中英

在GeoDjango Admin中禁用Openlayers地圖

[英]Disabling Openlayers map in GeoDjango Admin

我正在使用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

這提供了一種快速而骯臟的方式來覆蓋在管理中使用的一些Field選項。 formfield_overrides是一個字典,它將字段類映射到在構造時傳遞給字段的參數的字典。

所以在你的情況下,你想要用普通的舊文本字段覆蓋可愛的開放圖層地圖。 以下內容將使用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 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM