#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