У меня есть некоторые проблемы с сериализацией с помощью django. У меня есть три модели, скажем, Школа, Комната и Стол (например, фиктивное имя). В каждой школе есть несколько комнат, и в каждой комнате есть несколько столов.
Классы и их отношения выглядят следующим образом:
class School(models.Model):
name = models.CharField()
class Room(models.Model):
name = models.CharField()
school_id = models.ForeignKey(School)
class Desk(models.Model):
row = models.IntegerField()
col = models.IntegerField()
room_id = models.ForeignKey(Room)
Я хочу иметь возможность сериализовать список школ, каждая из которых содержит все парты внутри.
Я получил чулан, написав в своем serialize.py три сериализатора:
class DeskSerializer(serializers.ModelSerializer):
class Meta:
field = (row, col,)
class RoomSerializer(serializers.ModelSerializer):
desks = DeskSerializer(source='desk_set', many=True)
class Meta:
field = (desks,)
class SchoolSerializer(serializers.ModelSerializer):
rooms = RoomSerializer(source='room_set', many=True)
class Meta:
field = (name, rooms,)
Которые возвращают список школ, содержащий список комнат, содержащих список столов, когда мне нужен список школ, содержащий список столов
Какой источник я должен использовать в сериализаторе School, чтобы вернуть непосредственно стол? Что-то вроде source='room_set.desk_set'? Или, может быть, с помощью функции transform_?
PS: код написан с нуля в посте, пожалуйста, не обращайте внимания на возможные синтаксические ошибки