'Returns the UsageKey of this course.
UsageKeyField has a strange behavior where it fails to parse the "run"
of a course out of the serialized form of a Mongo Draft UsageKey. This
method is a wrapper around _location attribute that fixes the problem
by calling map_into_course, which restores the run attribute.'

@property
def location(self):

    if (self._location.run is None):
        self._location = self._location.map_into_course(self.id)
    return self._location
