diff --git a/flashcards/serializers.py b/flashcards/serializers.py index 168bd84..3eeda01 100644 --- a/flashcards/serializers.py +++ b/flashcards/serializers.py @@ -95,11 +95,11 @@ class MaskFieldSerializer(serializers.Field): return dumps(list(self._make_mask(value))) def to_internal_value(self, value): - return self._make_mask(value) + return self._make_mask(loads(value)) def _make_mask(self, data): try: - mask = FlashcardMask(loads(data)) + mask = FlashcardMask(data) except ValueError: raise serializers.ValidationError("Invalid JSON for MaskField") except TypeError: diff --git a/flashcards/validators.py b/flashcards/validators.py index 81d8417..1620eef 100644 --- a/flashcards/validators.py +++ b/flashcards/validators.py @@ -4,8 +4,9 @@ from collections import Iterable class FlashcardMask(set): - def __init__(self, *args, **kwargs): - super(FlashcardMask, self).__init__(*args, **kwargs) + def __init__(self, iterable, *args, **kwargs): + iterable = map(tuple, iterable) + super(FlashcardMask, self).__init__(iterable, *args, **kwargs) self._iterable_check() self._interval_check() self._overlap_check()