2016-07-16 4 views
0

Django 공식 웹 사이트의 시리얼 라이저 관계 부분에서는 몇 가지 관계를 표현하고 설명하는 음악 앨범 예제를 제공합니다.Django Rest의 Serializer 릴레이션과의 혼동

class Album(models.Model): 
    album_name = models.CharField(max_length=100) 
    artist = models.CharField(max_length=100) 

class Track(models.Model): 
    album = models.ForeignKey(Album, related_name='tracks') 
    order = models.IntegerField() 
    title = models.CharField(max_length=100) 
    duration = models.IntegerField() 

    class Meta: 
     unique_together = ('album', 'order') 
     ordering = ['order'] 

    def __unicode__(self): 
     return '%d: %s' % (self.order, self.title) 

나중에 모델을 Serializer와 상호 작용합니다.

class AlbumSerializer(serializers.ModelSerializer): 
    tracks = serializers.StringRelatedField(many=True) 

    class Meta: 
     model = Album 
     fields = ('album_name', 'artist', 'tracks') 

결과는 다음과 같습니다

{ 
    'album_name': 'Things We Lost In The Fire', 
    'artist': 'Low', 
    'tracks': [ 
     '1: Sunflower', 
     '2: Whitetail', 
     '3: Dinosaur Act', 
     ... 
    ] 
} 

나는 AlbumSerializer의 혼란 변수 트랙입니다. 변수 트랙은 앨범 및 트랙 모델과 관련이없는 것 같습니다. 앨범 및 트랙 모델과의 관계는 어떻습니까? 어떻게 호출하고 호출합니까? 유니 코드 AlbumSerializer에서 트랙 모델의 메서드는 무엇입니까?

답변