Мне было бы любопытно узнать, есть ли у кого-то еще лучший способ или если django обновил свой сериализатор, чтобы включить geojson.

ожусь в процессе создания сайта о геоджанго. На переднем крае у меня есть карта на 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 без необходимости использовать мой собственный? И если речь идет о том, чтобы кататься самостоятельно, с чего мне начать?

Ответы на вопрос(3)

Ваш ответ на вопрос