def is_valid(self, raise_exception=False): assert hasattr(self, "initial_data"), ( "Cannot call `.is_valid()` as no `data=` keyword argument was " "passed when instantiating the serializer instance." ) if not hasattr(self, "_validated_data"): try: self._validated_data = self.run_validation(self.initial_data) except ValidationError as exc: self._validated_data = {} self._errors = exc.detail else: self._errors = {} if self._errors and raise_exception: errors = [ ": ".join([self.fields.get(key).label, value[0]]) for key, value in self._errors.items() ][0] raise ParseError(errors) return not bool(self._errors)