Как объединить две разные модели на основе пользователя и отправить один ответ - Django Rest Framework

В моем проекте есть две различные модели. Модель StudentDetail имеет связь один-к-одному с пользователем-студентом, а модель EnrollmentList имеет связь по внешнему ключу с пользователем-студентом. Я хочу объединить информацию из обеих моделей для конкретного студента-пользователя и отправить их как один ответ, а не посылать разные ответы. Ниже приведены модели и их сериализаторы

StudentDetail/models.py

class StudentDetail(models.Model):
     id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
     
     user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
     
     name = models.CharField(max_length=100, null=True, blank=True)

StudentDetailSerializer

class StudentDetailSerializer(serializers.ModelSerializer):
    
    class Meta:
        model = StudentDetail
        fields = "__all__"
        

Enrollment/models.py

class EnrollmentList(models.Model):
    
    id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
    
    student = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='student')

EnrollSerializer

class AllReqs(serializers.ModelSerializer):
     class Meta:
         model = EnrollmentList
         fields = ['id','student_name', 'student_parent_name', 'standard', 'applying_for_standard', "board", 'home_tuition', 'address']

Теперь предположим, что запрос сделан, я хочу объединить информацию из StudentDetail и EnrollmentList для этого конкретного пользователя-студента, чтобы получить сериализованные данные, которые могут выглядеть как показано ниже, и отправить их в виде одного ответа

{
"student_name": name, #from StudentDetail
"home_tuition": home_tuition #from EnrollmentList
}

Пожалуйста, подскажите мне правильный способ сделать это

Определите ваш сериализатор следующим образом:

class AllReqs(serializers.ModelSerializer):

    student_name = serializers.CharField(source='student.name')

     class Meta:
         model = EnrollmentList
         fields = ['id','student_name', 'home_tuition']
Вернуться на верх