diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 1edcfa5c9..a49d7a2f2 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -106,6 +106,10 @@ class UpdateModelMixin(object): # pk and/or slug attributes are implicit in the URL. pk = self.kwargs.get(self.pk_url_kwarg, None) if pk: + try: + pk = int(pk) + except ValueError: + pass setattr(obj, 'pk', pk) slug = self.kwargs.get(self.slug_url_kwarg, None) diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py index 14fa66f93..7c24d84ea 100644 --- a/rest_framework/tests/generics.py +++ b/rest_framework/tests/generics.py @@ -175,7 +175,7 @@ class TestInstanceView(TestCase): content = {'text': 'foobar'} request = factory.put('/1', json.dumps(content), content_type='application/json') - response = self.view(request, pk=1).render() + response = self.view(request, pk='1').render() self.assertEquals(response.status_code, status.HTTP_200_OK) self.assertEquals(response.data, {'id': 1, 'text': 'foobar'}) updated = self.objects.get(id=1)