@@ -14,45 +14,40 @@ class Meta:
14
14
15
15
16
16
class UserUpdate (generics .UpdateAPIView ):
17
- queryset = User .objects .exclude (username = 'exclude' ). prefetch_related ( 'groups' )
17
+ queryset = User .objects .exclude (username = 'exclude' )
18
18
serializer_class = UserSerializer
19
+ prefetch_related = ['groups' ]
19
20
20
21
21
22
class TestPrefetchRelatedUpdates (TestCase ):
22
23
def setUp (self ):
23
24
self .user = User .objects .create (username = 'tom' , email = 'tom@example.com' )
24
25
self .groups = [Group .objects .create (name = 'a' ), Group .objects .create (name = 'b' )]
25
26
self .user .groups .set (self .groups )
26
-
27
- def test_prefetch_related_updates (self ):
28
- view = UserUpdate .as_view ()
29
- pk = self .user .pk
30
- groups_pk = self .groups [0 ].pk
31
- request = factory .put ('/' , {'username' : 'new' , 'groups' : [groups_pk ]}, format = 'json' )
32
- response = view (request , pk = pk )
33
- assert User .objects .get (pk = pk ).groups .count () == 1
34
- expected = {
35
- 'id' : pk ,
27
+ self .expected = {
28
+ 'id' : self .user .pk ,
36
29
'username' : 'new' ,
37
30
'groups' : [1 ],
38
- 'email' : 'tom@example.com'
31
+ 'email' : 'tom@example.com' ,
39
32
}
40
- assert response .data == expected
33
+ self .view = UserUpdate .as_view ()
34
+
35
+ def test_prefetch_related_updates (self ):
36
+ request = factory .put (
37
+ '/' , {'username' : 'new' , 'groups' : [self .groups [0 ].pk ]}, format = 'json'
38
+ )
39
+ response = self .view (request , pk = self .user .pk )
40
+ assert User .objects .get (pk = self .user .pk ).groups .count () == 1
41
+ assert response .data == self .expected
41
42
42
43
def test_prefetch_related_excluding_instance_from_original_queryset (self ):
43
44
"""
44
45
Regression test for https://github.com/encode/django-rest-framework/issues/4661
45
46
"""
46
- view = UserUpdate .as_view ()
47
- pk = self .user .pk
48
- groups_pk = self .groups [0 ].pk
49
- request = factory .put ('/' , {'username' : 'exclude' , 'groups' : [groups_pk ]}, format = 'json' )
50
- response = view (request , pk = pk )
51
- assert User .objects .get (pk = pk ).groups .count () == 1
52
- expected = {
53
- 'id' : pk ,
54
- 'username' : 'exclude' ,
55
- 'groups' : [1 ],
56
- 'email' : 'tom@example.com'
57
- }
58
- assert response .data == expected
47
+ request = factory .put (
48
+ '/' , {'username' : 'exclude' , 'groups' : [self .groups [0 ].pk ]}, format = 'json'
49
+ )
50
+ response = self .view (request , pk = self .user .pk )
51
+ assert User .objects .get (pk = self .user .pk ).groups .count () == 1
52
+ self .expected ['username' ] = 'exclude'
53
+ assert response .data == self .expected
0 commit comments