﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
31338	ChangeList parses querystring incorrectly	Dan Goldstein	nobody	"The ChangeList class in django.contrib.admin does not correctly handle querystrings generated by <select multiple> elements. These elements create querystrings like `?filter=val1&filter=val2`. The ChangeList constructor loses all but the last value when it assigns `dict(request.GET.items())` to params on this line: https://github.com/django/django/blob/3.0.3/django/contrib/admin/views/main.py#L87

Here’s a code snippet illustrating the problem:
{{{
from django.http import QueryDict
qd = QueryDict(""key=val1&key=val2&key=val3"")
assert qd.getlist(""key"") == [""val1"", ""val2"", ""val3""]  # correct
d = dict(qd.items())
assert d[""filter""] == ""val3""  # loses val1 and val2
}}}

This has been reported before https://code.djangoproject.com/ticket/29121 but the author didn't address the problems with changing the type of `ChangeList.params` and was marked invalid without comment.

"	Bug	closed	contrib.admin	3.0	Normal	duplicate			Unreviewed	0	0	0	0	0	0
