Попытка создать вложенное представление классов модели Django, используя отношения - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь следовать этой документации для создания вложенного сериализатора и представления API. https://www.django -rest-framework.org / апи-гид / отношения / # вложенными отношения

Однако я не могу понять, что я упустил, так как мои результаты не ожидаются.

Я последовал этому примеру в моем случае и проверил различные другие руководства относительно того же самого. Пробовал разные представления и разные форматы сериализатора.

Код для модели такой: -

class Round(models.Model):
    player_num = models.IntegerField(null=False, default=1)

class Seats(models.Model):
    stack = models.IntegerField(null=False, default=0)
    round = models.ForeignKey(Round, on_delete=models.CASCADE)
    state = models.IntegerField(choices=STATE)

код для сериализаторов: -

class SeatsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Seats
        fields = ('stack','state')

class RoundSerializer(serializers.ModelSerializer):
    seats = SeatsSerializer(many = True, read_only=True)

    class Meta:
        model = Round
        fields = ('player_num','seats')

Я хочу вывод, подобный этому:

{
  'player_num': 3,
  'seats': [
    {'stack': 100, 'state': 'participating', 'name': 'p1', 'uuid': 'ftwdqkystzsqwjrzvludgi'},
    {'stack': 100, 'state': 'participating', 'name': 'p2', 'uuid': 'bbiuvgalrglojvmgggydyt'},
  ]
}

Тем не менее, вывод, который я получаю:

{
  'player_num': 3,
}

1 Ответ

2 голосов
/ 28 марта 2019

Попробуйте это:

round = models.ForeignKey(Round, on_delete=models.CASCADE, related_name='seats')
...