MCPcopy
hub / github.com/encode/django-rest-framework / to_internal_value

Method to_internal_value

rest_framework/serializers.py:493–528  ·  view source on GitHub ↗

Dict of native values <- Dict of primitive datatypes.

(self, data)

Source from the content-addressed store, hash-verified

491 super().run_validators(to_validate)
492
493 def to_internal_value(self, data):
494 """
495 Dict of native values <- Dict of primitive datatypes.
496 """
497 if not isinstance(data, Mapping):
498 message = self.error_messages['invalid'].format(
499 datatype=type(data).__name__
500 )
501 raise ValidationError({
502 api_settings.NON_FIELD_ERRORS_KEY: [message]
503 }, code='invalid')
504
505 ret = {}
506 errors = {}
507 fields = self._writable_fields
508
509 for field in fields:
510 validate_method = getattr(self, 'validate_' + field.field_name, None)
511 primitive_value = field.get_value(data)
512 try:
513 validated_value = field.run_validation(primitive_value)
514 if validate_method is not None:
515 validated_value = validate_method(validated_value)
516 except ValidationError as exc:
517 errors[field.field_name] = exc.detail
518 except DjangoValidationError as exc:
519 errors[field.field_name] = get_error_detail(exc)
520 except SkipField:
521 pass
522 else:
523 self.set_value(ret, field.source_attrs, validated_value)
524
525 if errors:
526 raise ValidationError(errors)
527
528 return ret
529
530 def to_representation(self, instance):
531 """

Callers 1

run_validationMethod · 0.95

Calls 5

set_valueMethod · 0.95
ValidationErrorClass · 0.90
get_error_detailFunction · 0.90
get_valueMethod · 0.45
run_validationMethod · 0.45

Tested by

no test coverage detected