'course_id: the course in the context of which we want StudentModules.
user: the django user for whom to load modules.
descriptor: An XModuleDescriptor
depth is the number of levels of descendant modules to load StudentModules for, in addition to
the supplied descriptor. If depth is None, load all descendant StudentModules
descriptor_filter is a function that accepts a descriptor and return whether the field data
should be cached'

@classmethod
def cache_for_descriptor_descendents(cls, course_id, user, descriptor, depth=None, descriptor_filter=(lambda descriptor: True), asides=None, read_only=False):

    cache = FieldDataCache([], course_id, user, asides=asides, read_only=read_only)
    cache.add_descriptor_descendents(descriptor, depth, descriptor_filter)
    return cache
