diff --git a/flashcards/serializers.py b/flashcards/serializers.py index d97e0f6..e36527e 100644 --- a/flashcards/serializers.py +++ b/flashcards/serializers.py @@ -102,7 +102,9 @@ class MaskFieldSerializer(serializers.Field): return dumps(list(self._make_mask(value))) def to_internal_value(self, value): - return self._make_mask(loads(value)) + if not isinstance(value, list): + value = loads(value) + return self._make_mask(value) def _make_mask(self, data): try: @@ -239,7 +241,7 @@ class QuizAnswerRequestSerializer(ModelSerializer): correct = BooleanField(required=False, help_text="The user's self-evaluation of their response") def __init__(self, instance=None, data=empty, **kwargs): - assert isinstance(instance, UserFlashcardQuiz) + assert isinstance(instance, UserFlashcardQuiz) or instance is None super(QuizAnswerRequestSerializer, self).__init__(instance=instance, data=data, **kwargs) def validate_response(self, response): diff --git a/flashcards/views.py b/flashcards/views.py index 2e4e750..fb1194a 100644 --- a/flashcards/views.py +++ b/flashcards/views.py @@ -374,6 +374,7 @@ class UserFlashcardQuizViewSet(GenericViewSet, CreateModelMixin, UpdateModelMixi raise ValidationError("No matching flashcard found in your decks") user_flashcard = user_flashcard_filter.order_by('?').first() + # user_flashcard = user_flashcard_filter.annotate(spaced=F()) mask = user_flashcard.get_mask().get_random_blank() user_flashcard_quiz = UserFlashcardQuiz(user_flashcard=user_flashcard, blanked_word=user_flashcard.flashcard.text[slice(*mask)])