如何从django视图发送json并在HTML上接收它

时间:2012-08-19 08:01:26

标签: python openlayers geodjango

我正在使用GeoDjango开发GIS项目,为此我必须使用OpenLayers渲染地图。我的代码段接受JSON在OpenLayers中创建图层。我想将我的GeoDjango“管理”模型作为JSON发送到我的HTML页面,然后在HTML上接收它作为JSON来呈现我的地图。

请提供另一个建议,了解如何在OpenLayers地图中渲染我的GeoDjango模型。

我的管理模式:

class UPAdministrative(models.Model):
    name=models.CharField(max_length=51)
    admin_leve=models.CharField(max_length=5)   
    ls=models.LineStringField()
    objects=models.GeoManager()

    def __unicode__(self):
        return self.name

2 个答案:

答案 0 :(得分:1)

我认为你必须为你的模型实现CRUD并在html中使用它。为了显示geoobject,我只使用了django管理页面。 要写一个CRUD,请参阅

tastypie

Django REST framework

答案 1 :(得分:0)

您可以在视图中将模型序列化为OpenLayers支持的格式。例如,此视图仅将几何体作为geojson发送:

from django.http import HttpResponse
from models import UPAdministrative

def upadministrative_geometry_json(request, upadmin_id):
    up_admin = UPAdministrative.objects.get(pk=upadmin_id)
    geojson = up_admin.ls.geojson
    return HttpResponse(geojson, mimetype='application/json')

问题Rendering spatial data of GeoQuerySet in a custom view on GeoDjango有一个更详细的例子,说明如何将数据与OpenLayers集成。