2014-11-02 42 views
6

我已经连载我的车型之一是在一个外键。我得到'Parent' object is not iterableDjango Rest Framework对象不可迭代?

models.py

class Parent(models.Model): 
    # Parent data 

class Child(models.Model): 
    parent = ForeignKey(Parent) 

serializer.py

class ChildSerializers(serializers.ModelSerializer): 
    parent = serializers.RelatedField(many=True) 
    class Meta: 
     model = ReportField 
     fields = (
      'id', 
      'parent' 
     ) 

api.py

class ChildList(APIView): 
    def get(self, request, format=None): 
     child = Child.objects.all() 
     serialized_child = ChildSerializers(child, many=True) 
     return Response(serialized_child.data) 

我猜我必须通过父列表t他的孩子名单,但不能确定最好的方式做到这一点

尝试api.py

class ChildList(APIView): 
    def get(self, request, format=None): 
     child = Child.objects.all() 
     parent = Parent.objects.all() 
     serialized_child = ChildSerializers(child, many=True) 
     serialized_parent = ChildSerializers(parent, many=True) 
     return Response(serialized_child.data, serialized_parent.data) 
+17

为什么使用'many = True'。 'Parent'只是一个字段,不需要使用明确的序列化器字段。只是摆脱这些'多=真'.. – mariodev 2014-11-02 19:59:25

+1

这工作。小姐了解文件。作为回答请将它弹出来,以便我可以标记它。谢谢。 – 2014-11-02 20:21:34

+0

我以同样的方式误解了文档。 – Chuck 2015-05-02 21:00:39

回答

13

为什么使用许多=真。 Parent只是一个字段,不需要使用显式的序列化器字段。只是摆脱这些很多=真

- 回答mariodev在评论。