Tôi đang sử dụng Django 1.8, với GeoDjango và PostGIS. Tôi đang sử dụng HttpResponse
trở lại một số GeoJSON:Trình nối tiếp GeoJSON của Django không tuần tự hóa tất cả các trường?
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')
Trong giao diện điều khiển này in một lĩnh vực code
tốt:
99N
Nhưng GeoJSON trở không có một trường properties.code
. Trường có trường properties.name
, properties.org_type
và properties.ons_code
.
Tại sao điều này? Có phải tên code
có thể được đặt trước không? Nếu vậy, làm thế nào tôi có thể sửa lỗi này?
Có thể là 'mã' không tồn tại khi không có hoặc không có giá trị, tôi thấy giá trị được in trên bàn điều khiển '99N' xuất hiện một lần, danh sách kết quả chỉ có một đối tượng? Chúng ta có thể thấy toàn bộ phản ứng không? –
Tôi tin rằng đây là * vì * '' code'' không phải là một phần hoặc proeprty của đặc tả [GeoJSON] (http://geojson.org/geojson-spec.html#feature-objects) và không hợp lệ để đưa vào đối tượng Feature ở dạng tuần tự. '' django-geojson'' đang làm điều * đúng * ở đây AFAIK. –
@Richard: Tôi đã cố hết sức để trả lời câu hỏi của bạn và sẽ vui vẻ tinh chỉnh câu trả lời nếu nó không giúp ích gì. Bạn có thể vui lòng cho biết mô hình của bạn là gì và đầu ra từ serializing đối tượng không có bộ lọc nào? –