Modify '_writable_fields Method'

Reinforce against errors.
This commit is contained in:
sol HYUN 2016-12-06 01:00:51 +09:00
parent 50c51c335e
commit f5d6925312

View File

@ -366,8 +366,13 @@ class Serializer(BaseSerializer):
ret = []
for field in self.fields.values():
if re.compile("\_set$").findall(field.source):
for field in field.child._writable_fields:
ret.append(field)
try:
for field in field.child._writable_fields:
if (not field.read_only) or (field.default is not empty):
ret.append(field)
except:
if (not field.read_only) or (field.default is not empty):
ret.append(field)
continue
if (not field.read_only) or (field.default is not empty):
ret.append(field)
@ -439,7 +444,7 @@ class Serializer(BaseSerializer):
raise ValidationError(detail=as_serializer_error(exc))
return value
def to_internal_value(self, data):
"""
Dict of native values <- Dict of primitive datatypes.