Django

Code

Changeset 8705

Show
Ignore:
Timestamp:
08/29/08 11:49:19 (3 months ago)
Author:
jacob
Message:

Fixed #8278: fixed QueryDict.update(QueryDict). Thanks, julien.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/http/__init__.py

    r8666 r8705  
    212212        self._assert_mutable() 
    213213        f = lambda s: str_to_unicode(s, self.encoding) 
    214         d = dict([(f(k), f(v)) for k, v in other_dict.items()]) 
    215         MultiValueDict.update(self, d) 
     214        if hasattr(other_dict, 'lists'): 
     215            for key, valuelist in other_dict.lists(): 
     216                for value in valuelist: 
     217                    MultiValueDict.update(self, {f(key): f(value)}) 
     218        else: 
     219            d = dict([(f(k), f(v)) for k, v in other_dict.items()]) 
     220            MultiValueDict.update(self, d) 
    216221 
    217222    def pop(self, key, *args): 
  • django/trunk/tests/regressiontests/httpwrappers/tests.py

    r8530 r8705  
    437437UnicodeEncodeError: ..., HTTP response headers must be in US-ASCII format 
    438438 
     439# 
     440# Regression test for #8278: QueryDict.update(QueryDict) 
     441# 
     442>>> x = QueryDict("a=1&a=2", mutable=True) 
     443>>> y = QueryDict("a=3&a=4") 
     444>>> x.update(y) 
     445>>> x.getlist('a') 
     446[u'1', u'2', u'3', u'4'] 
    439447""" 
    440448