From d1312d97db3c1c68be7919a7a6b656f59a1d9786 Mon Sep 17 00:00:00 2001 From: Rohan Rangray <rrangray@ucsd.edu> Date: Fri, 29 May 2015 15:53:17 -0700 Subject: [PATCH] Added better error checking in QuizRequestSerializer.validate_sections --- flashcards/serializers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/flashcards/serializers.py b/flashcards/serializers.py index a476ce7..996b40d 100644 --- a/flashcards/serializers.py +++ b/flashcards/serializers.py @@ -10,6 +10,7 @@ from rest_framework.fields import EmailField, BooleanField, CharField, IntegerFi from rest_framework.serializers import ModelSerializer, Serializer, PrimaryKeyRelatedField, ListField from rest_framework.validators import UniqueValidator from flashy.settings import QUARTER_END, QUARTER_START +from collections import Iterable class EmailSerializer(Serializer): @@ -201,7 +202,9 @@ class QuizRequestSerializer(serializers.Serializer): raise serializers.ValidationError("Invalid end date for the flashcard range") def validate_sections(self, value): - if value is None: + if value is not None and not isinstance(value, Iterable): + raise serializers.ValidationError("Invalid section format. Expecting a list or no value.") + if value is None or len(value) == 0: return Section.objects.all() section_filter = Section.objects.filter(pk__in=value) if not section_filter.exists(): -- 1.9.1