File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -667,6 +667,28 @@ def save(self, **kwargs):
667
667
668
668
return self .instance
669
669
670
+ def is_valid (self , raise_exception = False ):
671
+ # This implementation is the same as the default,
672
+ # except that we use lists, rather than dicts, as the empty case.
673
+ assert hasattr (self , 'initial_data' ), (
674
+ 'Cannot call `.is_valid()` as no `data=` keyword argument was '
675
+ 'passed when instantiating the serializer instance.'
676
+ )
677
+
678
+ if not hasattr (self , '_validated_data' ):
679
+ try :
680
+ self ._validated_data = self .run_validation (self .initial_data )
681
+ except ValidationError as exc :
682
+ self ._validated_data = []
683
+ self ._errors = exc .detail
684
+ else :
685
+ self ._errors = []
686
+
687
+ if self ._errors and raise_exception :
688
+ raise ValidationError (self .errors )
689
+
690
+ return not bool (self ._errors )
691
+
670
692
def __repr__ (self ):
671
693
return unicode_to_repr (representation .list_repr (self , indent = 1 ))
672
694
Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ def test_bulk_create_success(self):
46
46
serializer = self .BookSerializer (data = data , many = True )
47
47
self .assertEqual (serializer .is_valid (), True )
48
48
self .assertEqual (serializer .validated_data , data )
49
+ self .assertEqual (serializer .errors , [])
49
50
50
51
def test_bulk_create_errors (self ):
51
52
"""
@@ -76,6 +77,7 @@ def test_bulk_create_errors(self):
76
77
serializer = self .BookSerializer (data = data , many = True )
77
78
self .assertEqual (serializer .is_valid (), False )
78
79
self .assertEqual (serializer .errors , expected_errors )
80
+ self .assertEqual (serializer .validated_data , [])
79
81
80
82
def test_invalid_list_datatype (self ):
81
83
"""
You can’t perform that action at this time.
0 commit comments