使用format=json
查询我的API时出现以下错误:
AttributeError 'list' object has no attribute 'get'
有趣的是,Django Rest Framework API UI不会发生这种情况。仅在format=json
时。
这是我的列表方法:
def list(self, request):
queryset = dataset_models.DataSet.objects.all()
serializer = serializers.DataSetListSerializer(queryset, many=True)
return Response(serializer.data)
我的序列化器:
class DataSetListSerializer(serializers.ModelSerializer):
class Meta:
model = dataset_models.DataSet
回溯:
Traceback:
File "/usr/lib/python2.7/site-packages/Django-1.5.7.example1-py2.7.egg/django/core/handlers/base.py" in get_response
187. response = middleware_method(request, response)
Exception Type: AttributeError at /api/v0/a-cb4be7e8/p/example.com/dataset/
Exception Value: 'list' object has no attribute 'get'
是什么给出了?
答案 0 :(得分:3)
当您使用many=True
时,它会序列化多个对象并将它们放入列表中。由于JSONResponse
类希望传递一个dict(除非也传递safe=False
),我猜你的Response
类也是如此。