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