如何使用 Django JSON 和 GeoJSON 序列化器?

How to use Django JSON and GeoJSON Serializer?

我对 Django 比较陌生。我已阅读文档,但仍然无法正常工作。

views.py

def getMarkers(request):
    query = request.GET 
    zoom = query.__getitem__('zoom')
    fromlat = query.__getitem__('fromlat')
    tolat = query.__getitem__('tolat')
    fromlng = query.__getitem__('fromlng')
    tolng = query.__getitem__('tolng')
    querystring = coordinate.objects.filter(lat__gt=fromlat) .filter(lat__lt = tolat).filter(lon__gt = fromlng).filter(lon__lt = tolng)
    data = serialize('geojson', querystring,
          geometry_field='point',
          fields=('name',))

    print(data) 

models.py

class coordinate(models.Model):
    name = models.CharField(max_length=30)
    lat = models.DecimalField(max_digits=10, decimal_places=7)
    lon = models.DecimalField(max_digits=10, decimal_places=7)
    latlng = [lat, lon]
    zoom = models.IntegerField(default=15)

    def __str__(self):
        return self.name

如何使用 searlizer?它没有抛出错误,但我知道它不起作用,因为除了请求

之外,没有任何内容被打印到服务器终端

print(data) 将不起作用。您必须执行以下操作:

return HttpResponse(data)

然后访问该视图的 URL,您将看到结果。

更新

如果您尝试访问的密钥不在 request.GETrequest.POST.

中,则会出现

MultiValueDictKeyError

为防止此错误,请确保您的 GET 请求具有 zoom 键。为此,您需要在地址栏中这样写 URL:

/getmarkers/?zoom=val&formlat=val&somekey=val

val 替换为该键的值。