Django ile serileştirme konusunda bazı sıkıntılarım var. Üç modelim var, bir okul, bir oda ve bir masa diyelim (örneğin kukla ismi) diyelim. Her okulda birden fazla oda var ve her odada birden fazla masa var.Django.rest_framework: Bire birçok kişiye nasıl serileştirilir?
sınıflar ve onların ilişkileri şuna benzer:
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)
içimde, her direkt içeren tüm masaları Okulu listesini getirilmeye isterler. masanın bir listesini içeren odanın bir listesini içeren okul listesini döndürür
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,)
ben Okulu listesini istiyorum:
aldığım dolap benim serialize.py üç seri hale yazarak oldu Masanın bir listesini içeren tabloyu içeren bir tabloyu içeren tabloyu içeren bir tabloyu içeren tabloyu bulmak için School serializer'da hangi kaynağı kullanmalıyım? Source = 'room_set.desk_set' gibi bir şey var mı? Ya da belki bir transform_ işlevi kullanarak?
Not: seni doğru anlama olsam kod yayında sıfırdan yazma olduğunu, olası sözdizimi hatalarını
Bunu bir sorguda yapabilirsiniz: desks = Desk.objects.filter (room__school = self) –