mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-06-14 10:33:17 +03:00
Drop broken placeholder serializations.
This commit is contained in:
parent
2247fd68e9
commit
3fba60e99c
|
@ -338,6 +338,11 @@ class HTMLFormRenderer(BaseRenderer):
|
||||||
fields = {}
|
fields = {}
|
||||||
for key, val in data.fields.items():
|
for key, val in data.fields.items():
|
||||||
if getattr(val, 'read_only', True):
|
if getattr(val, 'read_only', True):
|
||||||
|
# Don't include read-only fields.
|
||||||
|
continue
|
||||||
|
|
||||||
|
if getattr(val, 'fields', None):
|
||||||
|
# Nested data not supported by HTML forms.
|
||||||
continue
|
continue
|
||||||
|
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
@ -476,6 +481,7 @@ class BrowsableAPIRenderer(BaseRenderer):
|
||||||
return
|
return
|
||||||
|
|
||||||
serializer = view.get_serializer(instance=obj)
|
serializer = view.get_serializer(instance=obj)
|
||||||
|
|
||||||
data = serializer.data
|
data = serializer.data
|
||||||
form_renderer = self.form_renderer_class()
|
form_renderer = self.form_renderer_class()
|
||||||
return form_renderer.render(data, self.accepted_media_type, self.renderer_context)
|
return form_renderer.render(data, self.accepted_media_type, self.renderer_context)
|
||||||
|
@ -508,9 +514,10 @@ class BrowsableAPIRenderer(BaseRenderer):
|
||||||
|
|
||||||
# Get a read-only version of the serializer
|
# Get a read-only version of the serializer
|
||||||
serializer = view.get_serializer(instance=obj)
|
serializer = view.get_serializer(instance=obj)
|
||||||
for field_name, field in serializer.fields.items():
|
if obj is None:
|
||||||
if field.read_only:
|
for name, field in serializer.fields.items():
|
||||||
del serializer.fields[field_name]
|
if getattr(field, 'read_only', None):
|
||||||
|
del serializer.fields[name]
|
||||||
|
|
||||||
# Render the raw data content
|
# Render the raw data content
|
||||||
renderer = renderer_class()
|
renderer = renderer_class()
|
||||||
|
|
|
@ -334,13 +334,14 @@ class BaseSerializer(WritableField):
|
||||||
if self.source == '*':
|
if self.source == '*':
|
||||||
return self.to_native(obj)
|
return self.to_native(obj)
|
||||||
|
|
||||||
|
# Get the raw field value
|
||||||
try:
|
try:
|
||||||
source = self.source or field_name
|
source = self.source or field_name
|
||||||
value = obj
|
value = obj
|
||||||
|
|
||||||
for component in source.split('.'):
|
for component in source.split('.'):
|
||||||
if value is None:
|
if value is None:
|
||||||
return self.to_native(None)
|
break
|
||||||
value = get_component(value, component)
|
value = get_component(value, component)
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -158,7 +158,6 @@ class BasicTests(TestCase):
|
||||||
'email': '',
|
'email': '',
|
||||||
'content': '',
|
'content': '',
|
||||||
'created': None,
|
'created': None,
|
||||||
'sub_comment': ''
|
|
||||||
}
|
}
|
||||||
self.assertEqual(serializer.data, expected)
|
self.assertEqual(serializer.data, expected)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user