Как сделать обратную вложенную сериализацию, когда у нас есть поле ManytoMany в отношении? Используя DRF
моя модель данных выглядит как
''' class Rack(models.Model):
rack_id = models.CharField(primary_key=True,max_length=30, verbose_name="Rack Id")
rack_set = models.ForeignKey(RackSet, on_delete=models.CASCADE, related_name='wh_rack_set', verbose_name="Rack Set")
class Meta:
db_table = "rw_rack"
def __str__(self):
return self.rack_name
class RackBay(models.Model):
bay_id = models.CharField(primary_key=True,max_length=30, verbose_name="Bay Id")
rack = models.ForeignKey(Rack, on_delete=models.CASCADE, related_name='wh_rack', verbose_name="Rack")
class Meta:
db_table = "rw_bay"
def __str__(self):
return self.bay_name
class RackShelf(models.Model):
shelf_id = models.CharField(primary_key=True,max_length=50, verbose_name="Shelf Id")
bay = models.ForeignKey(RackBay, on_delete=models.CASCADE, related_name='wh_rack_bay', verbose_name="Bay")
class Meta:
db_table ="rw_shelf"
def __str__(self):
return self.shelf_name
class RackBin(models.Model):
bin_id = models.CharField(primary_key=True,max_length=50, verbose_name="Bin Id")
class Meta:
db_table = "rw_bin"
def __str__(self):
return self.bin_name
класс CargoWarehouseSurvey(models.Model):
job_id = models.ForeignKey(WarehouseJob, on_delete=models.CASCADE, null=True, related_name='inputted_job_order', verbose_name="Job Id")
warehouse_locations = models.ManyToManyField(WarehouseCell, help_text='Assigned warehouse locations for current survey job.', related_name='warehouse_locations_set')
rack_bin_locations = models.ManyToManyField(RackBin, help_text='Assigned rack_bin locations for current survey job.', related_name='rack_bin_locations_set')
def __str__(self):
return self.id
class Meta:
db_table = 'warehouses_survey'
ordering = ['id']
'''
Это моя модель данных, в CargoWarehouseSurvey есть связь бункеров с тем, что выбрано, мне нужно получить бункер, который относится к стойке, отсеку, полке, бункеру. например
Ожидаемый ответ:
"allotted_bins": [ { "rack_id": "A-1", "bays": [ { "bay_id": "B-1", "shelves": [ { "shelf_id": "S1", "bin_ids": [ "12343", "21232" ] }, { "shelf_id": "S2", "bin_ids": [ "43234", "42354" ] },
]
}
]
}
] }