def clean_existing(self, value):
existing_pk = value[self.pk_field]<EOL>try:<EOL><INDENT>obj = self.fetch_existing(existing_pk)<EOL><DEDENT>except ReferenceNotFoundError:<EOL><INDENT>raise ValidationError('<STR_LIT>')<EOL><DEDENT>orig_data = self.get_orig_data_from_existing(obj)<EOL>value = self.schema_class(value, orig_data).full_clean()<EOL>for field_name, field_value in value.items():<EOL><INDENT>if field_name != self.pk_field:<EOL><INDENT>setattr(obj, field_name, field_value)<EOL><DEDENT><DEDENT>return obj<EOL>
Clean the data and return an existing document with its fields
        updated based on the cleaned values.