Related to this question I am trying to return data from multiple models in one query by DRF.
class Artist(models.Model):
artist_name = models.CharField(max_length=100)
class Genre(models.Model):
genre_name = models.CharField(max_length=100)
class Album(models.Model):
album_name = models.CharField(max_length=100)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
genre = models.ForeignKey(Genre, on_delete=nodels.CASCADE)
I want to return a JSON list of all options for albums and genres for all artists.
Something like:
{
"genres": ["techno", "rap", "rock", ...],
"albums": ["nevermind", "collection", "fragile", ...]
}
I created a custom serializer:
class InfoSerializer(serializers.Serializer):
albums = serializers.CharField()
genres = serializers.CharField()
class Meta:
fields = ["albums", "genres"]
and a Viewset:
class OptionsViewSet(ViewSet):
serializer_class = InfoSerializer
def list(self, request):
options = [{"albums": Album.objects.all()},
{"genres": Genre.objects.all()}]
results = InfoSerializer(options, many = True)
results.is_valid()
return Response(results.data)
Error message I keep getting:
KeyError when attempting to get value for field
albums
on serializerInfoSerializer
...