Как сериализовать связанный объект Django Rest Framework

class Flight(models.Model):
    field_1
    field_2
    field_3

class Approach(models.Model):
    flight_object(models.ForeignKey, 'Flight')
    approach_type
    number

Approach связан как InlineFormset. Как я могу сериализовать Approach, вложенный в Flight, с возможностью создания новых объектов подхода. Я не знаю правильной терминологии, что затрудняет реализацию. Моя цель - создать новый объект Flight с Approach в качестве связанного объекта в FlightForm из проекта React Native.enter image description here

Я предположил, что ожидаемый ответ json

{
    "field_1": "value1",
    "field_2": "value2",
    "field_3": "value3",
    "approch_set": {
        "approach_type": "value",
        "number": 22
    }
}

для этого ожидаемого результата мы определим два сериализатора.

class ApproachSerializer(serializers.ModelSerializer):
    class Meta:
        model = Approach
        fields = ('approach_type', 'number', )

class FlightSerializer(serializers.ModelSerializer):
    approach_set = ApproachSerializer(many=true)
    class Meta:
        model = Flight
        fields = "__all__"  

а в классе view вы можете возвращать FlightSerializer данные, как это.

class FlightApiView(APIVIew):
    def get(self, request):
        flights = Flight.objects.all()
        return Response({'data': FlightSerializer(flights, many=True).data})

для более подробной информации вы можете прочитать документацию

Вернуться на верх