Я занимаюсь созданием сайта на geodjango. На переднем конце у меня есть карта на openlayers, и я хочу иметь возможность запускать запросы ajax по некоторому URL-адресу django и возвращать geojson.
Проблема в том, что стандартный сериализатор django json не работает с geojson. Итак, у меня есть такая модель:
class Asset (models.Model):
objects = models.GeoManager()
url_name = models.CharField(max_length=200)
name = models.CharField(max_length=200)
point = models.PointField(srid=4326)
def __unicode__(self):
return self.name
И я хочу создать представление:
def geojson_query(request):
#geographic query
...
assets = Asset.objects.all().filter(point__contained=bb_4326)
json = serializers.serialize("json", assets)
return HttpResponse(json)
Но затем я получаю ответ, который выглядит примерно так:
"url_name": "Upper_Svaneti",
"name": "Upper Svaneti",
"point": "POINT (43.0113899999999987 42.9163899999999998)"
Принимая во внимание, что я хочу что-то похожее на это:
"url_name": "Upper_Svaneti",
"name": "Upper Svaneti",
"geometry": {
"type": "Point",
"coordinates": [43.0113899999999987 42.9163899999999998]
}
Итак, я думаю, мой вопрос в том, как лучше всего реализовать сериализатор geojson в django, не полностью меняя собственный? И если дело доходит до прокатки моего собственного, с чего мне начать?