I wish to return MultipleObjects but I'm not sure how as I keep getting this error:
MultipleObjectsReturned at /clubs/
get() returned more than one Player -- it returned 2!
I want it to return a list of all the players that belong to the club but it only returns one (if I remove all the other players from my database but when I add the rest of the team it throws this error) I'm not sure how to make get return multiple objects.
models.py
class Club(models.Model):
name = models.CharField(max_length=4096)
abbreviation = models.CharField(max_length=4096)
def __str__(self):
if self.player:
return self.player.name
return self.name
class Player(models.Model):
name = models.CharField(max_length=4096)
age = models.IntegerField()
goals = models.IntegerField()
club = models.OneToOneField(Club, null=True, related_name='player')
def __str__(self):
return self.name
views.py
class ClubViewSet(viewsets.ModelViewSet):
queryset = Club.objects.order_by('name')
serializer_class = ClubSerializer
class PlayerViewSet(viewsets.ModelViewSet):
queryset = Player.objects.order_by('name')
serializer_class = PlayerSerializer
serializer.py
class ClubSerializer(serializers.HyperlinkedModelSerializer):
player = serializers.HyperlinkedRelatedField(
many=False,
read_only=True,
view_name='player-detail'
)
class Meta:
model = Club
fields = ('url','name', 'abbreviation','player')
class PlayerSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Player
fields = ('url', 'name', 'age', 'goals')
get()in the OPs code.