[英]How to display data using openlayers with OpenStreetMap in geodjango?
[英]Disabling Openlayers map in GeoDjango Admin
我正在使用Django 1.6和Postgres / PostGIS(GeoDjango)。 我注意到當我從1.5升級到1.6時,我無法再通過管理頁面使用WKT添加空間數據。 以前,我可以將要顯示的幾何體的WKT粘貼到文本框中。 現在,當我轉到管理頁面時,會顯示一個允許我編輯幾何圖形的地圖,但我無法添加數據。
是否有一個簡單的修復程序,允許我禁用顯示此地圖?
您可以使用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.