2015-05-03 4 views
1

Я пытаюсь написать сериализатор таким образом, чтобы он возвращал объект дружбы, включая все поля дружбы_крест и дружбу (имя, фамилия, адрес электронной почты), а не только идентификаторы.Сериализатор, содержащий вложенные объекты

Модель пользователя является модель и дружба моделирует 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 
} 

I 'd like that "creator" и "friend" будет содержать весь объект пользователя

ответ

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.

Смежные вопросы