Ich benutze Django 1.8, mit GeoDjango und PostGIS. Ich verwende HttpResponse
einige GeoJSON zurückzukehren:Djangos GeoJSON Serializer nicht alle Felder serialisieren?
from django.http import HttpResponse, JsonResponse
code = request.GET.get('q', '')
results = PCT.objects.filter(Q(code__startswith=code) |
Q(name__icontains=code))
results = results.filter(org_type='CCG')
for result in results:
print result.code
geo_field = 'boundary'
fields = ('name', 'code', 'ons_code', 'org_type', 'boundary',)
return HttpResponse(serialize('geojson', results,
geometry_field=geo_field, fields=fields),
content_type='application/json')
in der Konsole diese druckt ein code
Feld gerade fein:
99N
Aber die GeoJSON nicht seinerseits ein properties.code
Feld haben. Es hat jedoch ein properties.name
, properties.org_type
und properties.ons_code
Feld.
Warum ist das? Ist code
vielleicht ein reservierter Name? Wenn ja, wie kann ich das beheben?
Kann "Code" nicht existieren, wenn es keine ist oder keinen Wert hat, sehe ich den gedruckten Wert auf der Konsole '99N' erscheint einmal, hat die Ergebnisliste nur ein Objekt? Können wir die ganze Antwort sehen? –
Ich glaube das ist * da * '' code'' ist kein gültiger Teil oder eine gültige Spezifikation der [GeoJSON] (http://geojson.org/geojson-spec.html#feature-objects) Spezifikation und ist nicht gültig für in ein Feature-Objekt in serialisierter Form einfügen. '' django-geojson'' macht das * richtige * Ding hier AFAIK. –
@Richard: Ich habe mein Bestes getan, um Ihre Frage zu beantworten und werde die Antwort gerne verfeinern, wenn es nicht hilft. Können Sie bitte zeigen, was Ihr Modell ist und die Ausgabe von der Serialisierung des Objekts ohne Filter war? –