Merge pull request #3288 from thedrow/feature/cached-field-root-and-context

Cached the field's root and context property
This commit is contained in:
Tom Christie 2015-08-18 10:50:32 +01:00
commit bed3c45161

View File

@ -17,6 +17,7 @@ from django.forms import ImageField as DjangoImageField
from django.utils import six, timezone from django.utils import six, timezone
from django.utils.dateparse import parse_date, parse_datetime, parse_time from django.utils.dateparse import parse_date, parse_datetime, parse_time
from django.utils.encoding import is_protected_type, smart_text from django.utils.encoding import is_protected_type, smart_text
from django.utils.functional import cached_property
from django.utils.ipv6 import clean_ipv6_address from django.utils.ipv6 import clean_ipv6_address
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -522,7 +523,7 @@ class Field(object):
message_string = msg.format(**kwargs) message_string = msg.format(**kwargs)
raise ValidationError(message_string) raise ValidationError(message_string)
@property @cached_property
def root(self): def root(self):
""" """
Returns the top-level serializer for this field. Returns the top-level serializer for this field.
@ -532,7 +533,7 @@ class Field(object):
root = root.parent root = root.parent
return root return root
@property @cached_property
def context(self): def context(self):
""" """
Returns the context as passed to the root serializer on initialization. Returns the context as passed to the root serializer on initialization.