I send the following JSON:
{"delivery":{"delivery_time":"2016-05-31T12:18:47Z","delivery_adress":"123","phone":"123"},"paymentMethod":{"id":"1","title":"123124123"},"summ":"23","success":false} Serializer:
class OrderSerializer(serializers.ModelSerializer): delivery = DeliverySerializer(required=False, allow_null=True) paymentMethod = PaymentsSerializer(required=False, allow_null=True) class Meta: model = Order fields = ( 'delivery', 'paymentMethod','summ','success') #'id', def create(self, validated_data): deliverys_data = validated_data.pop('delivery') delivery = Delivery.objects.create(**deliverys_data) paymentsMethod_data = validated_data.pop('paymentMethod') data=list(paymentsMethod_data.values())[:3] print(data) payment_method = Payments.objects.create(**paymentsMethod_data) order = Order.objects.create(delivery=delivery,paymentMethod=payment_method,**validated_data) return order I try to get an id so that I can use it in Object ordere using Object get, and not create a new one every time, but each time I get only: [u'123124123 '], given only by name. At the moment, the order is created but each time creating new methods of payment
And I do not understand where he goes
View
@api_view(['POST']) def order_post(request, format=None): if request.method == 'POST': serializer = OrderSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) Other serializers
class DeliverySerializer(serializers.ModelSerializer): class Meta: model = Delivery fields = ('delivery_time','delivery_adress','phone')#'id', def create(self, validated_data): return Delivery.objects.create(**validated_data) class PaymentsSerializer(serializers.ModelSerializer): class Meta: model = Payments fields = ('id','title') # def create(self, validated_data): return Payments.objects.create(**validated_data)