나는 장고와 함께 몇 가지 문제를 직렬화하고있다. 3 가지 모델이 있습니다. 예를 들어, 학교, 방 및 책상 (예 : 가명)을 예로 들어 봅시다. 각 학교에는 여러 개의 방이 있고 각 방에는 여러 개의 책상이 있습니다.Django.rest_framework : one to many to many to serialize하는 방법은?
클래스와의 관계는 다음과 같다 :
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)
내가 내 각 직접 포함하는 모든 책상을 학교의 목록을 직렬화 할 수 있어야합니다. 책상의 목록을 포함하는 공간의 목록이 포함 된 학교의 목록을 반환
이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,)
나는 학교의 목록을 원하는 :
는 내가 가진 옷장 내 serialize.py 세 시리얼 라이저를 작성하여이었다 책상 목록이 포함되어 있습니다
학교 직렬기에서 책상을 직접 가져 오기 위해 사용해야하는 소스는 무엇입니까? source = 'room_set.desk_set'과 같은 것입니까? 아니면 transform_ 함수를 사용하여?
PS : 내가 제대로 이해 해요 경우 코드는 게시물에 처음부터 쓰기이며, 가능한 구문 오류
다음 쿼리를 사용하여 쿼리를 수행 할 수 있습니다. desks = Desk.objects.filter (room__school = self) –