mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-18 04:02:35 +03:00
bug fix
This commit is contained in:
parent
587c890ef1
commit
e96666fa44
|
@ -490,6 +490,7 @@ class InstanceMixin(object):
|
|||
"""
|
||||
view = super(InstanceMixin, cls).as_view(**initkwargs)
|
||||
resource_class = getattr(cls(**initkwargs), 'resource_class', None)
|
||||
# TODO: FIX !!! Very bad now, since this is attached on the class
|
||||
if resource_class:
|
||||
# We do a little dance when we store the view callable...
|
||||
# we need to store it wrapped in a 1-tuple, so that inspect will
|
||||
|
@ -506,7 +507,7 @@ class GetResourceMixin(object):
|
|||
|
||||
def get(self, request, *args, **kwargs):
|
||||
try:
|
||||
self.resource.retrieve(request, *args, **kwargs)
|
||||
self.resource.retrieve(*args, **kwargs)
|
||||
except self.resource.DoesNotExist:
|
||||
raise ErrorResponse(status.HTTP_404_NOT_FOUND)
|
||||
return self.resource.instance
|
||||
|
@ -515,8 +516,8 @@ class GetResourceMixin(object):
|
|||
class PostResourceMixin(object):
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
self.resource.create(request, *args, **kwargs)
|
||||
self.resource.update(self.CONTENT, request, *args, **kwargs)
|
||||
self.resource.create(*args, **kwargs)
|
||||
self.resource.update(self.CONTENT, *args, **kwargs)
|
||||
headers = {'Location': self.resource.get_url()}
|
||||
return Response(status.HTTP_201_CREATED, self.resource.instance, headers)
|
||||
|
||||
|
@ -526,12 +527,12 @@ class PutResourceMixin(object):
|
|||
def put(self, request, *args, **kwargs):
|
||||
headers = {}
|
||||
try:
|
||||
self.resource.retrieve(request, *args, **kwargs)
|
||||
self.resource.retrieve(*args, **kwargs)
|
||||
status_code = status.HTTP_204_NO_CONTENT
|
||||
except self.resource.DoesNotExist:
|
||||
self.resource.create(request, *args, **kwargs)
|
||||
self.resource.create(*args, **kwargs)
|
||||
status_code = status.HTTP_201_CREATED
|
||||
self.resource.update(self.CONTENT, request, *args, **kwargs)
|
||||
self.resource.update(self.CONTENT, *args, **kwargs)
|
||||
return Response(status_code, self.resource.instance, {})
|
||||
|
||||
|
||||
|
@ -539,17 +540,17 @@ class DeleteResourceMixin(object):
|
|||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
try:
|
||||
self.resource.retrieve(request, *args, **kwargs)
|
||||
self.resource.retrieve(*args, **kwargs)
|
||||
except self.resource.DoesNotExist:
|
||||
raise ErrorResponse(status.HTTP_404_NOT_FOUND)
|
||||
self.resource.delete(request, *args, **kwargs)
|
||||
self.resource.delete(*args, **kwargs)
|
||||
return
|
||||
|
||||
|
||||
class ListResourceMixin(object):
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
return self.resource.list(request, *args, **kwargs)
|
||||
return self.resource.list(*args, **kwargs)
|
||||
|
||||
|
||||
########## Pagination Mixins ##########
|
||||
|
|
|
@ -19,7 +19,8 @@ class BaseResource(object):
|
|||
# TODO: Inheritance, like for models
|
||||
class DoesNotExist(Exception): pass
|
||||
|
||||
def __init__(self, instance=None, view=None, depth=None, stack=[], **kwargs):
|
||||
# !!! `view` should be first kwarg to avoid backward incompatibilities.
|
||||
def __init__(self, view=None, instance=None, depth=None, stack=[], **kwargs):
|
||||
super(BaseResource, self).__init__(depth, stack, **kwargs)
|
||||
self.view = view
|
||||
self.instance = instance
|
||||
|
@ -320,13 +321,13 @@ class ModelResource(FormResource):
|
|||
is not set.
|
||||
"""
|
||||
|
||||
def __init__(self, instance=None, view=None, depth=None, stack=[], **kwargs):
|
||||
def __init__(self, view=None, instance=None, depth=None, stack=[], **kwargs):
|
||||
"""
|
||||
Allow :attr:`form` and :attr:`model` attributes set on the
|
||||
:class:`View` to override the :attr:`form` and :attr:`model`
|
||||
attributes set on the :class:`Resource`.
|
||||
"""
|
||||
super(ModelResource, self).__init__(instance=instance, view=view, depth=depth, stack=stack, **kwargs)
|
||||
super(ModelResource, self).__init__(view=view, instance=instance, depth=depth, stack=stack, **kwargs)
|
||||
|
||||
self.model = getattr(view, 'model', None) or self.model
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user