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