Ich wünsche MultipleObjects zurückzukehren, aber ich bin nicht sicher, wie ich diesen Fehler erhalte:Rückkehr MultipleObjects mit get() django
MultipleObjectsReturned at /clubs/
get() returned more than one Player -- it returned 2!
ich eine Liste aller Spieler zurückkehren wollen, die zu gehören Der Club gibt aber nur einen zurück (wenn ich alle anderen Spieler aus meiner Datenbank entferne, aber wenn ich den Rest des Teams hinzufüge, wird dieser Fehler ausgelöst), bin ich mir nicht sicher, wie man mehrere Objekte returnieren kann.
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')
Verwenden [Filter] (https://docs.djangoproject.com/ja/1.9/topics/db/queries/#retrieving-specific-objects-with-filters) statt zu bekommen. –
@SteinarLima das ist in diesem Fall nicht sehr hilfreich - es gibt kein 'get()' in den OPs Code. – Alasdair