if not error.application_code == None: data.update({'application_code' : error.application_code}) response = ApiResponse(data, error.status) except Exception, error: response = ApiResponse({ 'message' : 'Internal Server Error', 'status' : 500 }, 500) finally: # TODO : Yanıtın farklı formatlarda sunulabilmesini destekle if isinstance(response, ApiResponse): status_code = response.status mimetype = 'text/plain' if self._format == 'json': mimetype = 'application/json' elif self._format == 'xml': mimetype = 'text/xml' response = HttpResponse(response.to_json(), '%s; charset=utf-8' %(mimetype)) response.status_code = status_code # İstemci tarafındaki yetersizliklerden dolayı bazen 200 haricindeki hata kodları soruna neden olabiliyor. # Bu sorunu aşmak için suppress_response_codes=1 değeri ile istekte bulunmak yeterli. if request.GET.get('suppress_response_codes', False) == '1': response.status_code = 200 return response