属性错误:'list'对象没有'get'属性
当我用 format=json
查询我的API时,出现了以下错误:
AttributeError 'list' object has no attribute 'get'
有趣的是,在Django Rest Framework的API界面上并不会出现这个问题。只有在使用 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'
这是怎么回事呢?
1 个回答
3
当你使用 many=True
时,它会把多个对象转换成一种可以传输的格式,并放到一个列表里。因为 JSONResponse
类希望接收到一个字典(除非你同时传入 safe=False
),所以我猜你的 Response
类也是这样要求的。