Fixed #8278: fixed `QueryDict.update(QueryDict)`. Thanks, julien.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8705 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
cd0b65bcf7
commit
6a8dcafb57
|
@ -211,8 +211,13 @@ class QueryDict(MultiValueDict):
|
||||||
def update(self, other_dict):
|
def update(self, other_dict):
|
||||||
self._assert_mutable()
|
self._assert_mutable()
|
||||||
f = lambda s: str_to_unicode(s, self.encoding)
|
f = lambda s: str_to_unicode(s, self.encoding)
|
||||||
d = dict([(f(k), f(v)) for k, v in other_dict.items()])
|
if hasattr(other_dict, 'lists'):
|
||||||
MultiValueDict.update(self, d)
|
for key, valuelist in other_dict.lists():
|
||||||
|
for value in valuelist:
|
||||||
|
MultiValueDict.update(self, {f(key): f(value)})
|
||||||
|
else:
|
||||||
|
d = dict([(f(k), f(v)) for k, v in other_dict.items()])
|
||||||
|
MultiValueDict.update(self, d)
|
||||||
|
|
||||||
def pop(self, key, *args):
|
def pop(self, key, *args):
|
||||||
self._assert_mutable()
|
self._assert_mutable()
|
||||||
|
|
|
@ -436,6 +436,14 @@ Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
UnicodeEncodeError: ..., HTTP response headers must be in US-ASCII format
|
UnicodeEncodeError: ..., HTTP response headers must be in US-ASCII format
|
||||||
|
|
||||||
|
#
|
||||||
|
# Regression test for #8278: QueryDict.update(QueryDict)
|
||||||
|
#
|
||||||
|
>>> x = QueryDict("a=1&a=2", mutable=True)
|
||||||
|
>>> y = QueryDict("a=3&a=4")
|
||||||
|
>>> x.update(y)
|
||||||
|
>>> x.getlist('a')
|
||||||
|
[u'1', u'2', u'3', u'4']
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.http import QueryDict, HttpResponse
|
from django.http import QueryDict, HttpResponse
|
||||||
|
|
Loading…
Reference in New Issue