如何在Django REST框架中获取GeoJSON响应



我正在尝试使用django rest框架获得GeoJSON响应,但面临问题

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

当我将序列化类型更改为的序列化器时。geoodelserializer '然后它正在工作,但我想要GEOJSON响应

我已经搜索了GeoFeatureModelSerializer,但找不到任何例子geo_field = "geometry"。所有的例子都是关于geo_field = "point"

请帮我解决这个问题。

你可能只在可浏览的API中出现上述错误,因为默认的django -rest-framework html模板渲染器不能与GeoJson格式一起工作。

测试如果是这种情况,尝试调用你的api端点请求json格式,即/api/newpark.json或等价的/api/newpark?format=json。如果你的后端API是好的,问题是可浏览的html表单,那么这应该会显示geojson数据。

如果你想为你的GeoJson端点提供一个可浏览的API,那么你可能需要更改用于呈现API端点的html模板。

最新更新