2015-05-03 37 views
1

我想写一个序列化程序,它返回的友谊对象包括所有的friendship_creator和friendship_friend字段(名字,姓氏,电子邮件),而不仅仅是id。包含嵌套对象的序列化程序

用户模式是默认auth.user模型和友谊模式是这样的:

class Friendship(models.Model): 
     creator = models.ForeignKey('auth.user', related_name = 'friendship_creator') 
     friend = models.ForeignKey('auth.user', related_name = 'friendship_friend') 
     status = models.IntegerField() 
     created = models.DateTimeField(auto_now_add = True) 

serializers.py

class FriendshipSerializer(serializers.ModelSerializer): 

     class Meta: 
       model = Friendship 

当前的响应对象:

{ 
     "id": 2, 
     "status": 2, 
     "created": "2015-05-03T17:33:05.027652Z", 
     "creator": 3, 
     "friend": 4 
} 

我'喜欢那个'创造者'和'朋友'会包含整个用户对象

回答

0

您将需要为用户模型实现一个序列化器。说UserSerializer:

class UserSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = User 

然后明确宣布 '创造者' 和 '朋友' 的属性上FriendshipSerializer,分配UserSerializer的实例:

class FriendshipSerializer(serializers.ModelSerializer): 
    creator = UserSerializer() 
    friend = UserSerializer() 

    class Meta: 
      model = Friendship 

它在the docs相当清楚。

相关问题