'Render a block by invoking its view.
Finds the view named `view_name` on `block`.  The default view will be
used if a specific view hasn\'t be registered.  If there is no default
view, an exception will be raised.
The view is invoked, passing it `context`.  The value returned by the
view is returned, with possible modifications by the runtime to
integrate it into a larger whole.'

def render(self, block, view_name, context=None):

    context = (context or {})
    if (view_name in PREVIEW_VIEWS):
        block = self._get_student_block(block)
    return self.__getattr__('render')(block, view_name, context)
