Campo ID de modelo de Django Rest Framework en serializador de relación anidada

Soy usign Django Rest Framework donde tengo los siguientes dos serializadores:

class ServiceSerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField()

    class Meta:
        model = ServiceType
        fields = ('id', 'serviceName', 'servicePrice')


class CompanyShortListSerializer(serializers.ModelSerializer):

     services = ServiceSerializer(many=True)

     class Meta:
         model = Company
         fields = ( 'id','name','address','cost_per_patient','cost_per_month','renting_fee','services')

El modelo de ServiceType se ve así:

class ServiceType(models.Model):
     serviceName = EncryptedCharField(max_length=100, blank=True, verbose_name = "Typ usługi")
     servicePrice = EncryptedFloatField(null=True, blank=True, verbose_name = "Cena usługi", validators = [MinValueValidator(0.1), MaxValueValidator(999)])
     company = models.ForeignKey(Company, related_name = 'services')

Me gustaría actualizar las instancias existentes cambiando los servicios relacionados (por ejemplo, eliminando algunos de ellos). Para lograr esto, estoy haciendo esto:

def update(self, instance, validated_data):
    # Updates an exisitng Company with several services 
    instance.name = validated_data['name']
    instance.address = validated_data['address']
    instance.cost_per_patient = validated_data['cost_per_patient']
    instance.renting_fee = validated_data['renting_fee']
    services_data = validated_data['services']

    for item in services_data:
        updatedService = ServiceType(
            serviceName = item['serviceName'],
            servicePrice = item['servicePrice'],
            id=item['id'], 
            company=instance)
        updatedService.save()

    return instance

El problema que estoy enfrentando es que elservice['id'] no se proporciona el campo, lo que significa que obtengo unKeyError 'id' - aunque lo agregué explícitamente en elServiceSerializer id campo.

EDITAR

Aquí hay una solicitud ejemplar (tomada de Chrome) que estoy publicando:

 { "id":49,"name":"Test 1",
   "address":"Testowa 1",
   "renting_fee":200,
   "cost_per_month":300,
   "cost_per_patient":null,
   "services":[
   {"id":67,"serviceName":"Terapia","servicePrice":100},
   {"id":68,"serviceName":"Terapia par","servicePrice":150},
   {"id":69,"serviceName":"Terapia po angielsku","servicePrice":120}
   ]
 } 

¿Qué estoy haciendo mal y cómo obtener la identificación de un objeto (básicamente ServiceSerializer) usando serializadores anidados?

EDITAR no.2

Cuando imprimo desde la función de actualización del serializador obtengo lo siguiente:

print(self.data['services']) me da

[
 OrderedDict([('id', 67), ('serviceName', u'Terapia'), ('servicePrice', 100.0)]),
 OrderedDict([('id', 68), ('serviceName', u'Terapia par'), ('servicePrice', 150.0)]),
 OrderedDict([('id', 69), ('serviceName', u'Terapia po angielsku'), ('servicePrice', 120.0)]), 
 OrderedDict([('id', 70), ('serviceName', u'Terapia grupowa'), ('servicePrice', 140.0)])
]

Sin embargo,print(services_data) da lo siguiente (básicamente lo mismo, pero sin la identificación):

[
OrderedDict([(u'serviceName', u'Terapia'), (u'servicePrice', 100.0)]),
OrderedDict([(u'serviceName', u'Terapia par'), (u'servicePrice', 150.0)]),
OrderedDict([(u'serviceName', u'Terapia po angielsku'), (u'servicePrice', 120.0)])
]

Y elids perderse ...

EDITAR no.3

De acuerdo con laDocumentos de Django Rest Framework Si cierto campo estará en la representación de salida del serializador, debería ser unHiddenField. Sin embargo, esto requiere undefault valor ... Lo he comprobado y, de hecho, usar este HiddenField con un valor predeterminado 'resuelve' el problema: el ID está allí en validated_data. El problema es que elid no es correcto. ¿Existe la posibilidad de configurar esto?id al valor del objeto enviado al serializador?

Respuestas a la pregunta(4)

Su respuesta a la pregunta