mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-07 22:04:48 +03:00
Merge 1abd50143d
into a5f822d067
This commit is contained in:
commit
a7dd5aab19
|
@ -91,7 +91,7 @@ class BaseSerializer(Field):
|
||||||
self.initial_data = data
|
self.initial_data = data
|
||||||
self.partial = kwargs.pop('partial', False)
|
self.partial = kwargs.pop('partial', False)
|
||||||
self._context = kwargs.pop('context', {})
|
self._context = kwargs.pop('context', {})
|
||||||
kwargs.pop('many', None)
|
self.many = kwargs.pop('many', None)
|
||||||
super(BaseSerializer, self).__init__(**kwargs)
|
super(BaseSerializer, self).__init__(**kwargs)
|
||||||
|
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, *args, **kwargs):
|
||||||
|
@ -212,10 +212,10 @@ class BaseSerializer(Field):
|
||||||
try:
|
try:
|
||||||
self._validated_data = self.run_validation(self.initial_data)
|
self._validated_data = self.run_validation(self.initial_data)
|
||||||
except ValidationError as exc:
|
except ValidationError as exc:
|
||||||
self._validated_data = {}
|
self._validated_data = [] if self.many else {}
|
||||||
self._errors = exc.detail
|
self._errors = exc.detail
|
||||||
else:
|
else:
|
||||||
self._errors = {}
|
self._errors = [] if self.many else {}
|
||||||
|
|
||||||
if self._errors and raise_exception:
|
if self._errors and raise_exception:
|
||||||
raise ValidationError(self.errors)
|
raise ValidationError(self.errors)
|
||||||
|
@ -696,16 +696,25 @@ class ListSerializer(BaseSerializer):
|
||||||
# Allows renderers such as HTMLFormRenderer to get the full field info.
|
# Allows renderers such as HTMLFormRenderer to get the full field info.
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def data(self):
|
def errors(self):
|
||||||
ret = super(ListSerializer, self).data
|
ret = super(ListSerializer, self).errors
|
||||||
|
|
||||||
|
if ret == {}:
|
||||||
|
return ReturnList([], serializer=self)
|
||||||
|
|
||||||
|
if isinstance(ret, dict):
|
||||||
|
return ReturnDict(ret, serializer=self)
|
||||||
|
|
||||||
return ReturnList(ret, serializer=self)
|
return ReturnList(ret, serializer=self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def errors(self):
|
def validated_data(self):
|
||||||
ret = super(ListSerializer, self).errors
|
validated_data = super(ListSerializer, self).validated_data
|
||||||
if isinstance(ret, dict):
|
|
||||||
return ReturnDict(ret, serializer=self)
|
if validated_data == {}:
|
||||||
return ReturnList(ret, serializer=self)
|
return ReturnList([], serializer=self)
|
||||||
|
|
||||||
|
return validated_data
|
||||||
|
|
||||||
|
|
||||||
# ModelSerializer & HyperlinkedModelSerializer
|
# ModelSerializer & HyperlinkedModelSerializer
|
||||||
|
|
Loading…
Reference in New Issue
Block a user