Отправка списка с данными типа словарь
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__"
Виды