Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7k
Closed
Labels
Milestone
Description
There is a bug when validating only one object with a list serializer with raise_exception flag set as True.
It worked just fine in 3.4.7.
Steps to reproduce
Here is the class that will cause the issue
class TheSerializer(serializers.Serializer): name = serializers.CharField(required=True) choices = serializers.CharField(required=True)Then run
serializer = TheSerializer(data=[{"name": "hhj"}], many=True) serializer.is_valid(raise_exception=True)Expected behavior
if self._errors and raise_exception:> raise ValidationError(self.errors)E rest_framework.exceptions.ValidationError: [{'choices': ['This field is required.']}]Actual behavior
self = TheSerializer(data=[{'name': 'hhj'}], many=True): name = CharField(required=True) choices = CharField(required=True) @property def errors(self): ret = super(ListSerializer, self).errors> if isinstance(ret, list) and len(ret) == 1 and ret[0].code == 'null':E AttributeError: 'dict' object has no attribute 'code'