【发布时间】:2015-01-14 19:11:06
【问题描述】:
我正在使用 Rest Framework Ember 和 Django Rest Framework 作为我的 Ember 应用程序的 JSON API 后端。
https://github.com/ngenworks/rest_framework_ember
我已经让侧载与 resource_name = False 标志一起正常工作。 下面是我的代码:
class DocumentViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows documents to be viewed or edited.
"""
queryset = Document.objects.all()
serializer_class = DocumentSerializer
# Side loading code for documents
resource_name = False
# renderer_classes = (JSONRenderer, BrowsableAPIRenderer)
def list(self, request, *args, **kwargs):
# import IPython
# IPython.embed()
data = {'document': []}
for doc in self.get_queryset():
data['document'].append(doc)
data['contacts'] = doc.contacts.all()
serializer = DocumentContactSerializer(data)
return Response(serializer.data)
这可以按我的意愿工作。
现在的问题是,因为我已经实现了这个并覆盖了 ModelViewSet 上的 list() 方法,每当在 POST 上创建一个新对象时,我就会收到这个错误:
'NoneType' object has no attribute '__getitem__'
如果我将 resource_name = False 注释掉,那么 POST 将再次按预期工作。
你知道是什么原因造成的吗?
【问题讨论】:
-
简洁的解决方案。您使用的是什么版本的 DRF?我希望自己实现这一点。
标签: django ember.js ember-data django-rest-framework