summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2016-11-26 19:36:28 +0100
committerGitHub <noreply@github.com>2016-11-26 19:36:28 +0100
commit88b7ec03e70b37f0500f0d8a6bb5fdf1508efe2a (patch)
tree360db33f5b48004211adc3e8563513e69de5c4b5
parent4e23c0311c6aba7df9ba314eb8805f1e32465ac4 (diff)
parent66da347ded99209da5b5cc6fad944bcb33cbd8aa (diff)
downloadraven-88b7ec03e70b37f0500f0d8a6bb5fdf1508efe2a.tar.gz
Merge pull request #913 from theatlantic/django-http-post-list-fix
In Django HTTP request data, multiple values for same key are lists
-rw-r--r--raven/contrib/django/client.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/raven/contrib/django/client.py b/raven/contrib/django/client.py
index d343c62..98e4660 100644
--- a/raven/contrib/django/client.py
+++ b/raven/contrib/django/client.py
@@ -16,6 +16,8 @@ from django.conf import settings
from django.core.exceptions import SuspiciousOperation
from django.http import HttpRequest
from django.template import TemplateSyntaxError
+from django.utils.datastructures import MultiValueDict
+from django.utils import six
try:
# support Django 1.9
@@ -202,6 +204,11 @@ class DjangoClient(Client):
data = request.POST or '<unavailable>'
except Exception:
data = '<unavailable>'
+ else:
+ if isinstance(data, MultiValueDict):
+ data = dict(
+ (k, v[0] if len(v) == 1 else v)
+ for k, v in six.iterlists(data))
else:
data = None