From fb96c6d4f385cec01b7d73acd155236c879f6e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 18 Aug 2019 13:41:38 +0200 Subject: [PATCH] dashboard: force json request to be read as text (#35425) --- combo/apps/dashboard/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/combo/apps/dashboard/views.py b/combo/apps/dashboard/views.py index d0cc1071..1ca10dcb 100644 --- a/combo/apps/dashboard/views.py +++ b/combo/apps/dashboard/views.py @@ -22,6 +22,7 @@ from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse from django.db.models import Max, Min from django.http import Http404, HttpResponse, HttpResponseRedirect +from django.utils.encoding import force_text from django.views.decorators.csrf import csrf_exempt from django.views.generic import View @@ -117,7 +118,7 @@ def dashboard_auto_tile(request, *args, **kwargs): # only keep parameters that are actually defined for this cell type. cell_form_keys = [x['varname'] for x in settings.JSON_CELL_TYPES[cell.key].get('form') or {}] cell.parameters = {} - request_body = json.loads(request.body) + request_body = json.loads(force_text(request.body)) for key in cell_form_keys: cell.parameters[key] = request_body.get(key)