diff --git a/flashcards/serializers.py b/flashcards/serializers.py index 441d260..49e1386 100644 --- a/flashcards/serializers.py +++ b/flashcards/serializers.py @@ -171,8 +171,8 @@ class QuizRequestSerializer(serializers.Serializer): material_date_begin = DateTimeField(default=QUARTER_START) material_date_end = DateTimeField(default=QUARTER_END) - def __init__(self, user, *args, **kwargs): - super(QuizRequestSerializer, self).__init__(*args, **kwargs) + def __init__(self, user, instance=None, data=empty, **kwargs): + super(QuizRequestSerializer, self).__init__(instance=instance, data=data, **kwargs) self.user = user self.user_flashcard = None @@ -257,9 +257,9 @@ class QuizAnswerRequestSerializer(ModelSerializer): response = CharField(required=False, max_length=255, help_text="The user's response") correct = BooleanField(required=False, help_text="The user's self-evaluation of their response") - def __init__(self, instance, data, **kwargs): - assert isinstance(instance, UserFlashcardQuiz) - super(QuizAnswerRequestSerializer, self).__init__(instance, data, **kwargs) + def __init__(self, instance=None, data=empty, **kwargs): + assert isinstance(instance, UserFlashcardQuiz) or instance is None + super(QuizAnswerRequestSerializer, self).__init__(instance=instance, data=data, **kwargs) def validate_response(self, response): if response is None: diff --git a/flashcards/views.py b/flashcards/views.py index ad1d1e1..749ea0a 100644 --- a/flashcards/views.py +++ b/flashcards/views.py @@ -350,7 +350,7 @@ class UserFlashcardQuizViewSet(GenericViewSet, CreateModelMixin, UpdateModelMixi :param format: Format of the request. :return: A response containing """ - serializer = QuizRequestSerializer(data=request.data) + serializer = QuizRequestSerializer(user=request.user, data=request.data) serializer.is_valid(raise_exception=True) user_flashcard_quiz = serializer.create(serializer.validated_data) mask = sample(user_flashcard_quiz.user_flashcard.mask.get_random_blank(), 1)