Избегайте возврата сериализатором двойных названий для сериализатора отношений

У меня есть эти сериализаторы

сериализатор 2 имеет реляционное поле к сериализатору 1

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

class ExerciseSerializer(serializers.ModelSerializer):
    questions = QuestionSerializer(many=True)
    subject = serializers.SlugRelatedField(read_only=True, slug_field="title")
    topic = TopicSerializer()
    class Meta:
        model = Exercise
        fields = ["id", "subject", "topic", "questions"]

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

class ExerciseTokenSerializer(serializers.ModelSerializer):
    exercise = ExerciseSerializer()

    class Meta:
        model = ExerciseToken
        fields = ["exercise", "completed", "score"]

в результате получается вложенное "упражнение", в котором я должен получить доступ к данным через "exercise.exercise", просмотр результатов ниже лучше объяснит проблему:

{
    "exercise": {
        "exercise": {
         
        ...

        }
    }

    "completed": false,
    "score": 0

}

вот как я хочу, чтобы он выводил данные


{
    "exercise": {
         
        ...

    }

    "completed": false,
    "score": 0
}

Как этого можно достичь? Я не нашел решения ни в документации, ни здесь, в stack overflow.

Спасибо.

Вернуться на верх