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)
Спасибо всем.