def dispatch(self, request, *args, **kwargs): self.request = request self.args = args 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() 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) # Authenticate and check request has the relevant permissions self._check_permissions() # Get the appropriate handler method if self.method.lower() in self.http_method_names: handler = getattr(self, self.method.lower(), self.http_method_not_allowed) else: handler = self.http_method_not_allowed response_obj = handler(request, *args, **kwargs) # Allow return value to be either HttpResponse, Response, or an object, or None if isinstance(response_obj, HttpResponse): return response_obj elif isinstance(response_obj, Response): response = response_obj elif response_obj is not None: response = Response(status.HTTP_200_OK, response_obj) else: response = Response(status.HTTP_204_NO_CONTENT) if request.method == 'OPTIONS': # do not filter the response for HTTP OPTIONS, else the response fields are lost, # as they do not correspond with model fields response.cleaned_content = response.raw_content else: # Pre-serialize filtering (eg filter complex objects into natively serializable types) response.cleaned_content = self.filter_response( response.raw_content) except ErrorResponse, exc: response = exc.response
def dispatch(self, request, *args, **kwargs): self.request = request self.args = args self.kwargs = kwargs self.headers = {} try: self.initial(request, *args, **kwargs) # Authenticate and check request has the relevant permissions self._check_permissions() # Get the appropriate handler method if self.method.lower() in self.http_method_names: handler = getattr(self, self.method.lower(), self.http_method_not_allowed) else: handler = self.http_method_not_allowed response_obj = handler(request, *args, **kwargs) # Allow return value to be either HttpResponse, Response, or an object, or None if isinstance(response_obj, HttpResponse): return response_obj elif isinstance(response_obj, Response): response = response_obj elif response_obj is not None: response = Response(status.HTTP_200_OK, response_obj) else: response = Response(status.HTTP_204_NO_CONTENT) # Pre-serialize filtering (eg filter complex objects into natively serializable types) response.cleaned_content = self.filter_response(response.raw_content) except ErrorResponse, exc: response = exc.response
def dispatch(self, request, *args, **kwargs): self.request = request self.args = args self.kwargs = kwargs self.headers = {} try: self.initial(request, *args, **kwargs) # Authenticate and check request has the relevant permissions self._check_permissions() # Get the appropriate handler method if self.method.lower() in self.http_method_names: handler = getattr(self, self.method.lower(), self.http_method_not_allowed) else: handler = self.http_method_not_allowed response_obj = handler(request, *args, **kwargs) # Allow return value to be either HttpResponse, Response, or an object, or None if isinstance(response_obj, HttpResponse): return response_obj elif isinstance(response_obj, Response): response = response_obj elif response_obj is not None: response = Response(status.HTTP_200_OK, response_obj) else: response = Response(status.HTTP_204_NO_CONTENT) # Pre-serialize filtering (eg filter complex objects into natively serializable types) response.cleaned_content = self.filter_response(response.raw_content) except ErrorResponse, exc: response = exc.response
def dispatch(self, request, *args, **kwargs): self.request = request self.args = args 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) # Authenticate and check request has the relevant permissions self._check_permissions() # Get the appropriate handler method if self.method.lower() in self.http_method_names: handler = getattr(self, self.method.lower(), self.http_method_not_allowed) else: handler = self.http_method_not_allowed response_obj = handler(request, *args, **kwargs) # Allow return value to be either HttpResponse, Response, or an object, or None if isinstance(response_obj, HttpResponse): return response_obj elif isinstance(response_obj, Response): response = response_obj elif response_obj is not None: response = Response(status.HTTP_200_OK, response_obj) else: response = Response(status.HTTP_204_NO_CONTENT) if request.method == 'OPTIONS': # do not filter the response for HTTP OPTIONS, else the response fields are lost, # as they do not correspond with model fields response.cleaned_content = response.raw_content else: # Pre-serialize filtering (eg filter complex objects into natively serializable types) response.cleaned_content = self.filter_response(response.raw_content) except ErrorResponse, exc: response = exc.response