django rest framework外部キーシーケンス化方法と問題のまとめ


フロントエンドにデータを提供する場合、このようなjsonが多い.
{
    'album_name': 'Undun',
    'artist': 'The Roots',
    'tracks': 01
}......

テーブルの詳細に対応する外部キーフィールドが必要な場合は、次のようにします.
{
    'album_name': 'The Grey Album',
    'artist': 'Danger Mouse',
    'tracks': [
        {'order': 1, 'title': 'Public Service Announcement', 'duration': 245},
        {'order': 2, 'title': 'What More Can I Say', 'duration': 264},
        {'order': 3, 'title': 'Encore', 'duration': 159},
        ...
    ],
}
はどのように構成しますか?
django rest frameworkの公式サイトの説明を表示しますhttp://www.django-rest-framework.org/api-guide/relations/  
どのように操作するかは説明したが,詳しくはなく,しばしば穴にぶつかる
使用するモデル
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,   on_delete=models.CASCADE)
    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 TrackSerializer(serializers.ModelSerializer):
    class Meta:
        model = Track
        fields = ('order', 'title', 'duration')

class AlbumSerializer(serializers.ModelSerializer):
    tracks = TrackSerializer(many=True, read_only=True)

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')
は終わったようで、運行してやっと穴があることを発見しました
Got AttributeError when attempting to get a value for field 'tracks' on serializer 'AlbumSerializer'
  tracks  ,  ?
     model foreignkey    
 related_name='tracks',
 album = models.ForeignKey(Album,  related_name='tracks', on_delete=models.CASCADE)


できました.の
公式サイトの例はありますが、無視しやすいので、ここで提出します.注意してください.
フロントエンドにデータを提供する場合、このようなjsonが多い.
{
    'album_name': 'Undun',
    'artist': 'The Roots',
    'tracks': 01
}......

テーブルの詳細に対応する外部キーフィールドが必要な場合は、次のようにします.
{
    'album_name': 'The Grey Album',
    'artist': 'Danger Mouse',
    'tracks': [
        {'order': 1, 'title': 'Public Service Announcement', 'duration': 245},
        {'order': 2, 'title': 'What More Can I Say', 'duration': 264},
        {'order': 3, 'title': 'Encore', 'duration': 159},
        ...
    ],
}
はどのように構成しますか?
django rest frameworkの公式サイトの説明を表示しますhttp://www.django-rest-framework.org/api-guide/relations/  
どのように操作するかは説明したが,詳しくはなく,しばしば穴にぶつかる
使用するモデル
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,   on_delete=models.CASCADE)
    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 TrackSerializer(serializers.ModelSerializer):
    class Meta:
        model = Track
        fields = ('order', 'title', 'duration')

class AlbumSerializer(serializers.ModelSerializer):
    tracks = TrackSerializer(many=True, read_only=True)

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')
は終わったようで、運行してやっと穴があることを発見しました
Got AttributeError when attempting to get a value for field 'tracks' on serializer 'AlbumSerializer'
  tracks  ,  ?
     model foreignkey    
 related_name='tracks',
 album = models.ForeignKey(Album,  related_name='tracks', on_delete=models.CASCADE)


できました.の
公式サイトの例はありますが、無視しやすいので、ここで提出します.注意してください.