I presume this will just skip any course loaded in error, right? If so, should we just:

if isinstance(course, ErrorDescriptor):
    continue

If so, it seems like we might want to - at least for is_staff admin people - display some 'course loaded in error' information to help diagnose problem.

Or maybe, in the views.py, enumerate through all registered-for courses, filter out the ErrorDescriptors into a separate array (so those other 'hasattr' checks aren't necessary), and pass those that new array to the rendering context which can render those with special treatment.