简体   繁体   中英

Django Rest Framework serializing nested data

I am trying to serialize data in this Serializer but I am always getting the output {}

Here is my serializer:

class RelationshipSerializer(serializers.ModelSerializer):

    user = UserSerializer(read_only=True)
    related_user = UserSerializer(read_only=True)

    class Meta:
        model = models.Relationship
        fields = (
            'user',
            'related_user',
        )

Here is my view:

related_user_id = body["related_user"]
related_user = models.User.objects.get(id=related_user_id)

user = self.get_object()

user_serializer = serializers.UserSerializer(user).data
related_user_serializer = serializers.UserSerializer(related_user).data

# user_serializer and related_user_serializer return valid data.

data = {"user": user_serializer, "related_user": related_user_serializer}

serializer = serializers.RelationshipSerializer(data=data)

serializer.is_valid() # valid

return Response(serializer.data)

I am getting the id of related_user from post request then getting the queryset of the actual object, and user is the id passed in the url: user/{1}/ . I then serialize each user and create a dictionary to pass to RelationshipSerializer . The serializer returns valid but the response is {} , what did I do wrong?

class RelationshipSerializer(serializers.ModelSerializer):

    class Meta:
        model = models.Relationship
        fields = (
            'user',
            'related_user',
        )  

views.py

user = self.get_object()
data = {"user": user.id, "related_user": request.data["related_user"]}

serializer = serializers.RelationshipSerializer(data=data)
if serializer.is_vaild():
    serializer.save()
return Response(serializer.data)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM