Как получить ответ GeoJSON в Django REST Framework GIS
Я пытаюсь получить ответ GeoJSON, используя django rest framework, но сталкиваюсь с проблемой
argument of type 'NoneType' is not iterable
Это мой код
class NewPark(models.Model):
name = models.CharField(max_length=256)
geometry = models.GeometryField(srid=3857, null=True, blank=True)
objects = models.GeoManager()
class Meta:
db_table = u'new_park'
def __unicode__(self):
return '%s' % self.name
class NewParkSerializer(GeoFeatureModelSerializer):
class Meta:
model = NewPark
geo_field = "geometry"
fields = ('id', 'name', 'geometry')
class NewParkViewSet(viewsets.ModelViewSet):
def get_queryset(self):
queryset = NewPark.objects.all()
return queryset
Когда я изменяю сериализованный тип на 'erializers.GeoModelSerializer', тогда он работает, но я хочу получить ответ GEOJSON
Я искал о GeoFeatureModelSerializer, но не могу найти ни одного примера geo_field = "geometry". Все примеры о geo_field = "point"
Пожалуйста, помогите мне разобраться в этом вопросе?
1 ответ
Вы могли бы иметь только вышеупомянутую ошибку в просматриваемом API, потому что средство рендеринга HTML шаблона djanog-rest-framework по умолчанию не работает с форматом GeoJson.
Чтобы проверить, так ли это, попробуйте позвонить конечной точке API и запросить ее в формате json, т.е. /api/newpark.json
или эквивалентно /api/newpark?format=json
, Это должно показать вам данные geojson, если с вашим внутренним API все в порядке, и проблема в доступной для просмотра HTML-форме.
Если вы хотите иметь доступный для просмотра API для вашей конечной точки GeoJson, вам может потребоваться изменить html-шаблон, используемый для отображения вашей конечной точки API.