Django Rest Framwork возвращает ответ метода serializer create() из представления?

Я хочу массово вводить заказы на товары. Вот две мои модели, одна из которых Order, а другая OrderMap. Модель Order - это сводная информация о заказе, а OrderMap хранит все детали заказа продукта. Я написал метод create в OrderSerializer и все работает нормально, но я не могу вызвать ответ на представление. Как это сделать? Пожалуйста, помогите мне. Заранее спасибо.

Вот мой код:

serializers.py

class OrderMapSerializer(serializers.ModelSerializer):
    OrderNo = serializers.ReadOnlyField(source='order.orderno')

    class Meta:
        model = OrderMap
        fields = ('id', 'OrderNo', 'ItemCode', 'OrderQty', 'ReceivedQty')


class OrderSerializer(serializers.ModelSerializer):
    OrderMapData = OrderMapSerializer(many=True, source='ordermaporder')

    class Meta:
        model = Order
        fields = "__all__"

    def create(self, validated_data):
        ordermap_set = validated_data.pop('ordermaporder')
        add_pro = Order.objects.create(**validated_data)
        for data in ordermap_set:
            OrderMap.objects.create(
                OrderNo=add_pro,
                OrderQty=data.get('OrderQty'),
                ItemCode=data.get('ItemCode'),
                ReceivedQty=data.get('ReceivedQty')
            )
        return add_pro

Я хочу вернуть ответ из моего представления следующим образом:

if():
     dict_response = {"error": False, "Title": "Success", "ico": "successIcon", "message": "Wellcome! Product item successfully added."}

else:
     exceptions = []
     for key in serializer.errors.keys():
     exceptions.append({"field": key, "message": serializer.errors[key][0]})
     dict_response = {
                    "error": True,
                    "status": 400,
                    "message": "Your submitted data was not valid - please correct the below errors",
                    "exception": exceptions
                }

return Response(dict_response)

Я должен решить это:

    def post(self, request, *args, **kwargs):
        serializer = OrderSerializer(data=request.data)
        if serializer.is_valid():
            order = serializer.save()
            serializer = OrderSerializer(order)
            dict_response = {"error": False, "Title": "Success", "ico": "successIcon", "message": "Wellcome! Product item successfully added."}
            return Response(dict_response)
        else:
            exceptions = []
            for key in serializer.errors.keys():
                exceptions.append({"field": key, "message": serializer.errors[key][0]})
                dict_response = {
                    "error": True,
                    "status": 400,
                    "message": "Your submitted data was not valid - please correct the below errors",
                    "exception": exceptions
                }
        return Response(dict_response)

Спасибо всем.

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