Allowed writable HyperlinkedIdentityField

This commit is contained in:
Semprini 2017-08-09 14:07:38 +12:00
parent 1f2e2dea96
commit 7507d90570
2 changed files with 6 additions and 2 deletions

View File

@ -408,7 +408,8 @@ class HyperlinkedIdentityField(HyperlinkedRelatedField):
def __init__(self, view_name=None, **kwargs):
assert view_name is not None, 'The `view_name` argument is required.'
kwargs['read_only'] = True
if 'read_only' not in kwargs:
kwargs['read_only'] = True
kwargs['source'] = '*'
super(HyperlinkedIdentityField, self).__init__(view_name, **kwargs)

View File

@ -469,7 +469,10 @@ class Serializer(BaseSerializer):
except SkipField:
pass
else:
set_value(ret, field.source_attrs, validated_value)
if field.source_attrs != [] or field.source == "*":
set_value(ret, field.source_attrs, validated_value)
else:
set_value(ret, [field.field_name, ], primitive_value)
if errors:
raise ValidationError(errors)