'Reads a grade from database
Arguments:
user_id: The user associated with the desired grade
course_id: The id of the course associated with the desired grade
Raises PersistentCourseGrade.DoesNotExist if applicable'

@classmethod
def read(cls, user_id, course_id):

    try:
        prefetched_grades = get_cache(cls.CACHE_NAMESPACE)[cls._cache_key(course_id)]
        try:
            return prefetched_grades[user_id]
        except KeyError:
            raise cls.DoesNotExist
    except KeyError:
        return cls.objects.get(user_id=user_id, course_id=course_id)
