diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2016-11-26 19:36:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-26 19:36:28 +0100 |
commit | 88b7ec03e70b37f0500f0d8a6bb5fdf1508efe2a (patch) | |
tree | 360db33f5b48004211adc3e8563513e69de5c4b5 | |
parent | 4e23c0311c6aba7df9ba314eb8805f1e32465ac4 (diff) | |
parent | 66da347ded99209da5b5cc6fad944bcb33cbd8aa (diff) | |
download | raven-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.py | 7 |
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 |