From 727a0c576d6cf07d5cf859026002ae6742595815 Mon Sep 17 00:00:00 2001 From: Anton Agestam Date: Wed, 23 Apr 2014 13:56:53 +0200 Subject: [PATCH 1/2] swapped out HttpResponse for JsonResponse --- provider/views.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/provider/views.py b/provider/views.py index dd1200df..5636e81c 100644 --- a/provider/views.py +++ b/provider/views.py @@ -1,6 +1,6 @@ import json import urlparse -from django.http import HttpResponse +from django.http import HttpResponse, JsonResponse from django.http import HttpResponseRedirect, QueryDict from django.utils.translation import ugettext as _ from django.views.generic.base import TemplateView @@ -487,9 +487,7 @@ def access_token_response(self, access_token): except ObjectDoesNotExist: pass - return HttpResponse( - json.dumps(response_data), mimetype='application/json' - ) + return JsonResponse(response_data) def authorization_code(self, request, data, client): """ From 2227e821346feaf05cbe909355d08dd8c11ebbd9 Mon Sep 17 00:00:00 2001 From: Anton Agestam Date: Wed, 23 Apr 2014 15:42:50 +0200 Subject: [PATCH 2/2] replace HttpResponse w/ JsonResponse + fallback for Django<1.7 --- provider/views.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/provider/views.py b/provider/views.py index 5636e81c..f03a079f 100644 --- a/provider/views.py +++ b/provider/views.py @@ -1,6 +1,5 @@ import json import urlparse -from django.http import HttpResponse, JsonResponse from django.http import HttpResponseRedirect, QueryDict from django.utils.translation import ugettext as _ from django.views.generic.base import TemplateView @@ -9,6 +8,14 @@ from . import constants, scope +try: + from django.http import JsonResponse +except ImportError: + from django.http import HttpResponse + def JsonResponse(response_data, *args, **kwargs): + return HttpResponse(json.dumps(response_data), *args, mimetype='application/json', **kwargs) + + class OAuthError(Exception): """ Exception to throw inside any views defined in :attr:`provider.views`. @@ -298,8 +305,7 @@ def error_response(self, error, mimetype='application/json', status=400, Return an error response to the client with default status code of *400* stating the error as outlined in :rfc:`5.2`. """ - return HttpResponse(json.dumps(error), mimetype=mimetype, - status=status, **kwargs) + return JsonResponse(error, status=status, **kwargs) def get(self, request): data = self.get_data(request) @@ -463,8 +469,7 @@ def error_response(self, error, mimetype='application/json', status=400, Return an error response to the client with default status code of *400* stating the error as outlined in :rfc:`5.2`. """ - return HttpResponse(json.dumps(error), mimetype=mimetype, - status=status, **kwargs) + return JsonResponse(error, status=status, **kwargs) def access_token_response(self, access_token): """