2014-11-02 17 views
6

Ho serializzato uno dei miei modelli che ha una chiave esterna in. Ottengo 'Parent' object is not iterableL'oggetto Django Rest Framework non è iterable?

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) 

Suppongo che devo passare la lista dei genitori a t egli Lista bambino, ma non sono sicuro del modo migliore per farlo

tentativo 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

Perché usare 'many = True'. 'Parent' è solo un campo, non è necessario utilizzare il campo serializzatore esplicito. Basta sbarazzarsi di questi 'many = True' .. – mariodev

+1

Ciò ha funzionato. La signorina ha capito la documentazione. Inseriscilo come risposta per favore, così posso segnarlo. Grazie. –

+0

Ho frainteso i documenti allo stesso modo. – Chuck

risposta

13

Perché utilizzando molte = True. Il genitore è solo un campo, non è necessario utilizzare il campo serializzatore esplicito. Basta sbarazzarsi di questi molti = True

-ansposta da mariodev nel commento.

Problemi correlati