In den Serializer Beziehungen Teil auf der offiziellen Website von Django, bietet es ein Beispiel für Musikalben, um eine Beziehung darzustellen und zu erklären.Verwirrt zu Serializer Beziehungen in 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)
Später interagiert es Modell mit Serializer.
class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.StringRelatedField(many=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
Das Ergebnis ist:
{
'album_name': 'Things We Lost In The Fire',
'artist': 'Low',
'tracks': [
'1: Sunflower',
'2: Whitetail',
'3: Dinosaur Act',
...
]
}
Ich bin verwirrt variable Spuren im AlbumSerializer. Es scheint, dass die variablen Spuren für Album und Track-Modell irrelevant sind. Wie verhält es sich mit den Album- und Track-Modellen? Wie ruft es auf und ruft Unicode Methode des Track-Modells im AlbumSerializer auf?
@ Arun Ghosh sind variable Spuren in related_name gleichen wie die variable Spuren in AlbumSerializer? – pipi
@pipi beziehen sich beide auf dasselbe. –