Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed QueryDict.setlistdefault.

It was broken by a seemingly innocuous change in MultiValueDict.
Document the pitfall for now. This is fragile and should be
considered for refactoring.
  • Loading branch information...
commit f3c9a16a423c90baaf3804cb050d320741f799a2 1 parent 69f4856
@aaugustin aaugustin authored
Showing with 4 additions and 2 deletions.
  1. +4 −2 django/utils/datastructures.py
View
6 django/utils/datastructures.py
@@ -339,7 +339,8 @@ def setlist(self, key, list_):
def setdefault(self, key, default=None):
if key not in self:
self[key] = default
- return default
+ # Do not return default here because __setitem__() may store
+ # another value -- QueryDict.__setitem__() does. Look it up.
return self[key]
def setlistdefault(self, key, default_list=None):
@@ -347,7 +348,8 @@ def setlistdefault(self, key, default_list=None):
if default_list is None:
default_list = []
self.setlist(key, default_list)
- return default_list
+ # Do not return default_list here because setlist() may store
+ # another value -- QueryDict.setlist() does. Look it up.
return self.getlist(key)
def appendlist(self, key, value):
Please sign in to comment.
Something went wrong with that request. Please try again.