File tree 3 files changed +16
-0
lines changed
3 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ This release is not backwards compatible. For easy migration best upgrade first
33
33
### Fixed
34
34
35
35
* Avoid printing invalid pointer when api returns 404
36
+ * Avoid exception when using ` ResourceIdentifierObjectSerializer ` with unexisting primary key
36
37
37
38
38
39
## [ 2.8.0] - 2019-06-13
Original file line number Diff line number Diff line change @@ -119,6 +119,20 @@ def test_deserialize_primitive_data_blog(self):
119
119
self .assertTrue (serializer .is_valid (), msg = serializer .errors )
120
120
assert serializer .validated_data == self .blog
121
121
122
+ def test_deserialize_primitive_data_blog_with_unexisting_pk (self ):
123
+ unexisting_pk = self .blog .id
124
+ self .blog .delete ()
125
+ assert not Blog .objects .filter (id = unexisting_pk ).exists ()
126
+
127
+ initial_data = {
128
+ 'type' : format_resource_type ('Blog' ),
129
+ 'id' : str (unexisting_pk )
130
+ }
131
+ serializer = ResourceIdentifierObjectSerializer (data = initial_data , model_class = Blog )
132
+
133
+ self .assertFalse (serializer .is_valid ())
134
+ self .assertEqual (serializer .errors [0 ].code , 'does_not_exist' )
135
+
122
136
def test_data_in_correct_format_when_instantiated_with_queryset (self ):
123
137
qs = Author .objects .all ()
124
138
serializer = ResourceIdentifierObjectSerializer (instance = qs , many = True )
Original file line number Diff line number Diff line change 1
1
import inflection
2
+ from django .core .exceptions import ObjectDoesNotExist
2
3
from django .db .models .query import QuerySet
3
4
from django .utils .translation import ugettext_lazy as _
4
5
from rest_framework .exceptions import ParseError
You can’t perform that action at this time.
0 commit comments