We deleted a course using
manage.py. As explained here, the course is removed, but a lot of data related to the deleted course still exists in databases.
After we removed the course, we tried listing the enrollments for a particular user. This user was previously enrolled on the deleted course, so the user has an entry in the
student_courseenrollment table with a
course_id matching the deleted course.
The enrollments API
GET /api/enrollment/v1/enrollments?username=elena returns a 500 Internal Server Error and the following exception:
Exception Type: AttributeError at /api/enrollment/v1/enrollments Exception Value: Got AttributeError when attempting to get a value for field `course_id` on serializer `CourseEnrollmentsApiListSerializer`. The serializer field might be named incorrectly and not match any attribute or key on the `CourseEnrollment` instance. Original exception text was: 'NoneType' object has no attribute 'id'.
The workaround for this is to use the enrollment API instead (so enrollment instead of enrollments):
We spent some time figuring this out and hope this helps someone running into the same error.