1

POST トラックのアルバム「オプション」で「アルバム オブジェクト」の代わりにアルバムの名前を表示する方法を知りたい場合は、下の画像を参照してください。

http://s27.postimg.org/8n2uakd9f/Screen_Shot_2014_12_29_at_6_29_07_PM.png

ここに私のモデルとシリアライザーがあります..

models.py

class Album(models.Model):
    name = models.CharField(max_length=100)
    artist = models.CharField(max_length=100)
    year = models.CharField(max_length=4)
    origin = models.CharField(max_length=50)

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)

serializers.py

class TrackSerializer(serializers.ModelSerializer):

    class Meta:
        model = Track
        fields = ('order', 'title', 'duration','album')

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

    class Meta:
        model = Album
        fields = ('name', 'artist', 'year', 'origin', 'tracks')

アルバムデータ(例):

[
    {
        "name": "Album1", 
        "artist": "Artist1", 
        "year": "2012", 
        "origin": "Somewhere", 
        "tracks": []
    }, 
    {
        "name": "Album2", 
        "artist": "Artist2", 
        "year": "2014", 
        "origin": "Somewhere", 
        "tracks": []
    }
]

前もって感謝します

4

2 に答える 2

1

__str__モデルでメソッドを(または__unicode__Python 2 で)定義することにより、このラベルをカスタマイズできます。

class Album(models.Model):
    name = models.CharField(max_length=100)
    artist = models.CharField(max_length=100)
    year = models.CharField(max_length=4)
    origin = models.CharField(max_length=50)


    def __str__(self):
         return "%s (by %s)" % (self.name, self.artist)

この関数は、Django がこのオブジェクトへの参照を出力する必要がある場合に使用されます (django-rest-framework および Django admin を含む)。

于 2014-12-29T10:49:07.167 に答える
0

を使用して、モデルのまたはメソッドCustomRelatedFieldを変更することなく、Django REST Framework でのオブジェクトの表示方法を制御できます。__str____unicode__

http://www.django-rest-framework.org/api-guide/relations/#custom-relational-fields

于 2014-12-29T10:51:38.993 に答える