Ошибка
Получена ошибка AttributeError при попытке получить значение для поля participant_set
на сериализаторе MatchSerializer
. Поле сериализатора может иметь неправильное имя и не соответствовать ни одному атрибуту или ключу в экземпляре Match
. Исходный текст исключения был: объект «Соответствие» не имеет атрибута «member_set».
Models.py
class TournamentTeam(models.Model):
tournament = models.ForeignKey(Tournament, on_delete=models.SET_NULL, null=True)
team = models.ForeignKey(TeamPlayer, on_delete=models.SET_NULL, null=True)
class Match(models.Model):
name = models.TextField(blank=False, null=False)
participant = models.ManyToManyField(TournamentTeam, through='MatchParticipant')
class MatchParticipant(models.Model):
match = models.ForeignKey(Match, on_delete=models.SET_NULL, null=True, blank=True)
team = models.ForeignKey(TournamentTeam, on_delete=models.SET_NULL, null=True, blank=True)
score = models.CharField(max_length=255, null=True, blank=True)
Serializers.py
class MatchParticipantSerializer(serializers.ModelSerializer):
class Meta:
model = MatchParticipant
fields = '__all__'
class MatchSerializer(serializers.ModelSerializer):
participant_set=MatchParticipantSerializer(many=True)
class Meta:
model = Match
fields = ('name','participant_set')
Просмотры .py
class MatchAPIView(ListAPIView):
queryset = Match.objects.all()
serializer_class = MatchSerializer