Отправка списка с данными типа словарь

I am working on a quiz app. I have Quiz, Question, Answer models. I save the Quizzes made in the TakingQuiz model, and the answers are in the TakingQuizAnswer model. While talking to my friend, he mentioned that what I have to do is as follows:

When we send an Update request to the TakingQuiz API from Frontend, you need to send responses like answers : [{answer1object}, {answer2object}] and register them on the Backend.

Как я могу получить и сохранить такие данные в сериализаторе модели TakingQuiz? Я понятия не имею, как отправить данные в виде списка в запросе.

Разные модели

class Quiz(AbstractQuizBaseModel):
    ENABLED_CHOICES = (
        (True, _("Active")),
        (False, _("Not Active")),
    )
    
    book = models.ForeignKey("book.Book", on_delete= models.CASCADE, related_name="book_quiz")
    title = models.CharField(max_length=150)
    enabled = models.BooleanField(choices=ENABLED_CHOICES, default=False)

class Question(AbstractQuizBaseModel):
    quiz = models.ForeignKey("quiz.Quiz", on_delete=models.DO_NOTHING, related_name="question_quiz")
    question = models.CharField(max_length=500)
    topic = models.CharField(max_length=500)


class Answer(AbstractQuizBaseModel):
    IS_CORRECT_CHOICES = (
        (True, _("Correct")),
        (False, _("Wrong"))
    )

    question = models.ForeignKey("quiz.Question", on_delete=models.CASCADE, related_name = "question_answer")
    answer = models.CharField(max_length=500)
    is_correct = models.BooleanField(choices=IS_CORRECT_CHOICES, default=False)

class TakingQuiz(AbstractQuizBaseModel):
    quiz = models.ForeignKey("quiz.Quiz", on_delete=models.DO_NOTHING, related_name="quiz_taking_quiz")
    child = models.ForeignKey("account.ChildProfile", on_delete=models.CASCADE, related_name = "child_taking_quiz")
    title = models.CharField(max_length=150, editable=False, default="-")
    total_point = models.PositiveIntegerField(default=0, editable=False)

class TakingQuizAnswer(AbstractQuizBaseModel):
    taking_quiz = models.ForeignKey("quiz.TakingQuiz", on_delete=models.CASCADE, related_name="taking_quizes")
    question = models.ForeignKey("quiz.Question", on_delete=models.DO_NOTHING, related_name="question_taking_quiz")
    answer = models.ForeignKey("quiz.Answer", on_delete= models.DO_NOTHING, related_name="answer_taking_quiz")

Сериализаторы

class TakingQuizCreateSerializer(ModelSerializer):
    total_point = serializers.CharField(read_only = True)
    class Meta:
        model = TakingQuiz
        exclude = ["child"]

class TakingQuizAnswerCreateSerializer(ModelSerializer):
    class Meta:
        model = TakingQuizAnswer
        fields = "__all__"

Виды

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