2016-07-16 6 views
0

Djangoの公式サイトのシリアライザの関係部では、いくつかの関係を表現し説明するためのミュージックアルバムの例を提供しています。Django Restのシリアライザの関係に混乱しています

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) 

その後、シリアライザとモデルをやりとりします。

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で混乱して変数のトラックです。可変トラックはアルバムとトラックのモデルとは無関係です。アルバムとトラックのモデルにはどのような関係がありますか?どのように呼び出して呼び出しますかunicode AlbumSerializerのトラックモデルのメソッド?それはrelated_name

album = models.ForeignKey(Album, related_name='tracks') 

を経由して関連している

答えて

関連する問題