dashboard: force json request to be read as text (#35425)

This commit is contained in:
Frédéric Péters 2019-08-18 13:41:38 +02:00
parent 826acc3b24
commit fb96c6d4f3
1 changed files with 2 additions and 1 deletions

View File

@ -22,6 +22,7 @@ from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.db.models import Max, Min from django.db.models import Max, Min
from django.http import Http404, HttpResponse, HttpResponseRedirect 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.decorators.csrf import csrf_exempt
from django.views.generic import View 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. # 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_form_keys = [x['varname'] for x in settings.JSON_CELL_TYPES[cell.key].get('form') or {}]
cell.parameters = {} cell.parameters = {}
request_body = json.loads(request.body) request_body = json.loads(force_text(request.body))
for key in cell_form_keys: for key in cell_form_keys:
cell.parameters[key] = request_body.get(key) cell.parameters[key] = request_body.get(key)