diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index f3cd5868f..f11def6d4 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -110,16 +110,6 @@ class UpdateModelMixin(object): """ Update a model instance. """ - def get_object_or_none(self): - try: - return self.get_object() - except Http404: - # If this is a PUT-as-create operation, we need to ensure that - # we have relevant permissions, as if this was a POST request. - # This will either raise a PermissionDenied exception, - # or simply return None - self.check_permissions(clone_request(self.request, 'POST')) - def update(self, request, *args, **kwargs): partial = kwargs.pop('partial', False) self.object = self.get_object_or_none() @@ -148,6 +138,16 @@ class UpdateModelMixin(object): kwargs['partial'] = True return self.update(request, *args, **kwargs) + def get_object_or_none(self): + try: + return self.get_object() + except Http404: + # If this is a PUT-as-create operation, we need to ensure that + # we have relevant permissions, as if this was a POST request. + # This will either raise a PermissionDenied exception, + # or simply return None + self.check_permissions(clone_request(self.request, 'POST')) + def pre_save(self, obj): """ Set any attributes on the object that are implicit in the request.