10000 Simplify Serializer.fields with @cached_property (#6662) · coderanger/django-rest-framework@7232586 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7232586

Browse files
bluetechtomchristie
authored andcommitted
Simplify Serializer.fields with @cached_property (encode#6662)
1 parent 43a9cc1 commit 7232586

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

rest_framework/serializers.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -348,19 +348,18 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass):
348348
'invalid': _('Invalid data. Expected a dictionary, but got {datatype}.')
349349
}
350350

351-
@property
351+
@cached_property
352352
def fields(self):
353353
"""
354354
A dictionary of {field_name: field_instance}.
355355
"""
356356
# `fields` is evaluated lazily. We do this to ensure that we don't
357357
# have issues importing modules that use ModelSerializers as fields,
358358
# even if Django's app-loading stage has not yet run.
359-
if not hasattr(self, '_fields'):
360-
self._fields = BindingDict(self)
361-
for key, value in self.get_fields().items():
362-
self._fields[key] = value
363-
return self._fields
359+
fields = BindingDict(self)
360+
for key, value in self.get_fields().items():
361+
fields[key] = value
362+
return fields
364363

365364
@cached_property
366365
def _writable_fields(self):

0 commit comments

Comments
 (0)
{"resolvedServerColorMode":"day"}
0