Skip to content

Instantly share code, notes, and snippets.

@bohde
Created March 11, 2012 00:17
Show Gist options
  • Save bohde/2014186 to your computer and use it in GitHub Desktop.
Save bohde/2014186 to your computer and use it in GitHub Desktop.
class CustomDepthField(ToOneField):
def should_be_full(bundle):
if not bundle.request:
return self.full
if bundle.request.GET.get('with_entities', self.full) in (True, 'true', 'True', '1'):
return True
return False
def dehydrate_related(self, bundle, related_resource):
"""
Based on the ``full_resource``, returns either the endpoint or the data
from ``full_dehydrate`` for the related resource.
"""
if not self.should_be_full(bundle):
# Be a good netizen.
return related_resource.get_resource_uri(bundle)
else:
# ZOMG extra data and big payloads.
bundle = related_resource.build_bundle(obj=related_resource.instance, request=bundle.request)
return related_resource.full_dehydrate(bundle)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment