From 8e3a72f4fb4e9d3f93c7d966c13d4e7446b1949e Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Fri, 9 Dec 2016 21:31:52 +0100 Subject: [PATCH] Fixed #27583 -- Fixed MultiValueDict.getlist() crash when values for key is None. Restored the behavior before 727d7ce6cba21363470aaefb2dc5353017531be3. --- django/utils/datastructures.py | 2 +- tests/utils_tests/test_datastructures.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py index 1673ee10e8..a95f8c351a 100644 --- a/django/utils/datastructures.py +++ b/django/utils/datastructures.py @@ -146,7 +146,7 @@ class MultiValueDict(dict): return default else: if force_list: - values = list(values) + values = list(values) if values is not None else None return values def getlist(self, key, default=None): diff --git a/tests/utils_tests/test_datastructures.py b/tests/utils_tests/test_datastructures.py index ea2b147953..f917a2ae4e 100644 --- a/tests/utils_tests/test_datastructures.py +++ b/tests/utils_tests/test_datastructures.py @@ -119,6 +119,11 @@ class MultiValueDictTests(SimpleTestCase): values = x.getlist('b', default=MISSING) self.assertIs(values, MISSING) + def test_getlist_none_empty_values(self): + x = MultiValueDict({'a': None, 'b': []}) + self.assertIsNone(x.getlist('a')) + self.assertEqual(x.getlist('b'), []) + class ImmutableListTests(SimpleTestCase):