From f4be8bd53d13c9ecb7f31998f89a2def11111efb Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Fri, 22 Apr 2011 12:01:41 +0000 Subject: Fixed #9089 -- Correctly handle list values in MultiValueDict instances when passed to django.utils.http.urlencode. Thanks, kratorius, guettli and obeattie. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16064 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/http.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'django') diff --git a/django/utils/http.py b/django/utils/http.py index c93a338c30..4b43e5835e 100644 --- a/django/utils/http.py +++ b/django/utils/http.py @@ -6,6 +6,7 @@ import urllib import urlparse from email.Utils import formatdate +from django.utils.datastructures import MultiValueDict from django.utils.encoding import smart_str, force_unicode from django.utils.functional import allow_lazy @@ -49,7 +50,9 @@ def urlencode(query, doseq=0): unicode strings. The parameters are first case to UTF-8 encoded strings and then encoded as per normal. """ - if hasattr(query, 'items'): + if isinstance(query, MultiValueDict): + query = query.lists() + elif hasattr(query, 'items'): query = query.items() return urllib.urlencode( [(smart_str(k), -- cgit v1.3