【发布时间】:2014-09-08 21:38:45
【问题描述】:
使用 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'
什么给了?
【问题讨论】:
-
什么是full回溯?您可能不应该为您的函数使用名称
list,因为它掩盖了内置类型。但是,您的异常中的对象是实际的listtype。 -
@MartijnPieters 我的想法完全正确,但根据DRF docs
list是该请求的预期方法。在我的情况下,我将覆盖list。添加了回溯。 -
对;因为方法是命名空间的,应该没问题。
-
不过,这是一个非常短的回溯,除了异常之外没有任何可见的相关性。
标签: python json django django-rest-framework