Не отображаются сведения о курсе

#python #django #django-rest-framework #django-serializer

#python #django #django-rest-framework #django-сериализатор

Вопрос:

Я пытаюсь получить сведения о курсе из зарегистрированного курса, но он возвращает только идентификатор курса. Я пробовал с вложенными сериализаторами, но все пошло не так. Как я могу получить сведения о курсе со следующей настройкой

Модели

 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
  

сериализатор

 class MycoursesSerializer(serializers.ModelSerializer):
    class Meta:
        model = Enrollment
        fields = "__all__"
  

Вид

 @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)

  

ответ

 {
        "id": 1,
        "enroll_key": "Text here",
        "course": 1,
        "student": 1
    }
  

Ответ №1:

 class MycoursesSerializer(serializers.ModelSerializer):
    class Meta:
        model = Enrollment
        fields = "__all__"
        depth = 1