'Given a bundle with an object instance, extract the information from it
to populate the resource.'

def full_dehydrate(self, bundle, for_list=False):

    data = bundle.data
    api_name = self._meta.api_name
    resource_name = self._meta.resource_name
    for (field_name, field_object) in self.fields.items():
        field_use_in = field_object.use_in
        if callable(field_use_in):
            if (not field_use_in(bundle)):
                continue
        elif (field_use_in not in [u'all', (u'list' if for_list else u'detail')]):
            continue
        if (field_object.dehydrated_type == u'related'):
            field_object.api_name = api_name
            field_object.resource_name = resource_name
        data[field_name] = field_object.dehydrate(bundle, for_list=for_list)
        method = getattr(self, (u'dehydrate_%s' % field_name), None)
        if method:
            data[field_name] = method(bundle)
    bundle = self.dehydrate(bundle)
    return bundle
