I'm trying to get course details from enrolled course but it returns only the course ID. I tried with nested serializers but it went wrong. How can I get course details with the following setup
models
class Course(models.Model):
course_name = models.CharField(max_length=300,default=None)
author = models.ForeignKey(TeacherProfile,on_delete=models.CASCADE,null=True,default=None)
course_description = models.TextField(null=True)
course_cover = models.ImageField(null=True,blank=True,upload_to='course_covers/')
def __str__(self):
return self.course_name
class Enrollment(models.Model):
enroll_key = models.CharField(max_length=100,default="Text here",null=True)
course = models.ForeignKey(Course,on_delete=models.CASCADE,null=True,related_name='enrollment')
student = models.ForeignKey(StudentProfile,on_delete=models.CASCADE,null=True)
def __str__(self):
return self.course.course_name
serializer
class MycoursesSerializer(serializers.ModelSerializer):
class Meta:
model = Enrollment
fields = "__all__"
View
@api_view(['GET'])
@permission_classes([IsAuthenticated])
def MyCourses(request):
student = StudentProfile.objects.get(user=request.user)
courses_enrolled = Enrollment.objects.filter(student=student)
serializer = MycoursesSerializer(courses_enrolled,many=True)
return Response(serializer.data)
response
{
"id": 1,
"enroll_key": "Text here",
"course": 1,
"student": 1
}
class MycoursesSerializer(serializers.ModelSerializer):
class Meta:
model = Enrollment
fields = "__all__"
depth = 1