AttributeError' list'对象没有属性' get'

时间:2014-07-17 20:52:15

标签: python json django django-rest-framework

使用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'

是什么给出了?

1 个答案:

答案 0 :(得分:3)

当您使用many=True时,它会序列化多个对象并将它们放入列表中。由于JSONResponse类希望传递一个dict(除非也传递safe=False),我猜你的Response类也是如此。