Как сериализовать связанный объект 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.
Я предположил, что ожидаемый ответ 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})
для более подробной информации вы можете прочитать документацию