mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-01-24 16:24:18 +03:00
Some minor tidy up
This commit is contained in:
parent
b522cc8e51
commit
4c438f9f4d
|
@ -59,7 +59,6 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
"""
|
||||
permissions = ( permissions.FullAnonAccess, )
|
||||
|
||||
|
||||
@classmethod
|
||||
def as_view(cls, **initkwargs):
|
||||
"""
|
||||
|
@ -71,7 +70,6 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
view.cls_instance = cls(**initkwargs)
|
||||
return view
|
||||
|
||||
|
||||
@property
|
||||
def allowed_methods(self):
|
||||
"""
|
||||
|
@ -79,7 +77,6 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
"""
|
||||
return [method.upper() for method in self.http_method_names if hasattr(self, method)]
|
||||
|
||||
|
||||
def http_method_not_allowed(self, request, *args, **kwargs):
|
||||
"""
|
||||
Return an HTTP 405 error if an operation is called which does not have a handler method.
|
||||
|
@ -87,15 +84,34 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
raise ErrorResponse(status.HTTP_405_METHOD_NOT_ALLOWED,
|
||||
{'detail': 'Method \'%s\' not allowed on this resource.' % self.method})
|
||||
|
||||
|
||||
def initial(self, request, *args, **kargs):
|
||||
"""
|
||||
Hook for any code that needs to run prior to anything else.
|
||||
Required if you want to do things like set `request.upload_handlers` before
|
||||
the authentication and dispatch handling is run.
|
||||
"""
|
||||
pass
|
||||
# Calls to 'reverse' will not be fully qualified unless we set the
|
||||
# scheme/host/port here.
|
||||
self.orig_prefix = get_script_prefix()
|
||||
if not (self.orig_prefix.startswith('http:') or self.orig_prefix.startswith('https:')):
|
||||
prefix = '%s://%s' % (request.is_secure() and 'https' or 'http', request.get_host())
|
||||
set_script_prefix(prefix + self.orig_prefix)
|
||||
|
||||
def final(self, request, response, *args, **kargs):
|
||||
"""
|
||||
Hook for any code that needs to run after everything else in the view.
|
||||
"""
|
||||
# Restore script_prefix.
|
||||
set_script_prefix(self.orig_prefix)
|
||||
|
||||
# Always add these headers.
|
||||
response.headers['Allow'] = ', '.join(self.allowed_methods)
|
||||
# sample to allow caching using Vary http header
|
||||
response.headers['Vary'] = 'Authenticate, Accept'
|
||||
|
||||
# merge with headers possibly set at some point in the view
|
||||
response.headers.update(self.headers)
|
||||
return self.render(response)
|
||||
|
||||
def add_header(self, field, value):
|
||||
"""
|
||||
|
@ -113,12 +129,6 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
self.kwargs = kwargs
|
||||
self.headers = {}
|
||||
|
||||
# Calls to 'reverse' will not be fully qualified unless we set the scheme/host/port here.
|
||||
orig_prefix = get_script_prefix()
|
||||
if not (orig_prefix.startswith('http:') or orig_prefix.startswith('https:')):
|
||||
prefix = '%s://%s' % (request.is_secure() and 'https' or 'http', request.get_host())
|
||||
set_script_prefix(prefix + orig_prefix)
|
||||
|
||||
try:
|
||||
self.initial(request, *args, **kwargs)
|
||||
|
||||
|
@ -154,7 +164,6 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
except ErrorResponse, exc:
|
||||
response = exc.response
|
||||
|
||||
set_script_prefix(orig_prefix)
|
||||
return self.final(request, response, *args, **kwargs)
|
||||
|
||||
def options(self, request, *args, **kwargs):
|
||||
|
@ -172,19 +181,6 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView):
|
|||
response_obj['fields'] = field_name_types
|
||||
return response_obj
|
||||
|
||||
def final(self, request, response, *args, **kargs):
|
||||
"""
|
||||
Hook for any code that needs to run after everything else in the view.
|
||||
"""
|
||||
# Always add these headers.
|
||||
response.headers['Allow'] = ', '.join(self.allowed_methods)
|
||||
# sample to allow caching using Vary http header
|
||||
response.headers['Vary'] = 'Authenticate, Accept'
|
||||
|
||||
# merge with headers possibly set at some point in the view
|
||||
response.headers.update(self.headers)
|
||||
return self.render(response)
|
||||
|
||||
|
||||
class ModelView(View):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user