【问题标题】:How to get GeoJSON response in Django REST framework gis如何在 Django REST framework gis 中获取 GeoJSON 响应
【发布时间】:2014-04-27 12:16:26
【问题描述】:

我正在尝试使用 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

当我将序列化类型更改为 'erializers.GeoModelSerializer' 时它正在工作,但我想要 GEOJSON 响应

我搜索过 GeoFeatureModelSerializer,但找不到任何示例 geo_field = "geometry"。所有示例都是关于 geo_field = "point"

请帮我解决这个问题?

【问题讨论】:

    标签: django django-rest-framework geodjango django-rest-framework-gis


    【解决方案1】:

    您可能只有在可浏览 API 中出现上述错误,因为默认的 djanog-rest-framework html 模板渲染器不适用于 GeoJson 格式。

    要测试是否是这种情况,请尝试调用您的 api 端点以 json 格式请求它,即/api/newpark.json 或等效的/api/newpark?format=json。这应该会向您显示 geojson 数据,如果可以的话,您的后端 API 很好,问题是可浏览的 html 表单。

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

    【讨论】:

      猜你喜欢
      • 2014-04-22
      • 2015-03-24
      • 1970-01-01
      • 2022-11-01
      • 2013-04-09
      • 2020-07-29
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      相关资源
      最近更新 更多