* cc: andybak (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:23>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* stage: Someday/Maybe => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:24>
* cc: cmawebsite@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:25>
Comment (by collinanderson):
I finally thought of a possible way to do this:
Use urls like `?fieldname__in=4&fieldname__in=3`
We'd need to support that both in the front end (generating those urls),
and in the backend (handling repeated parameters and making sure they
become lists).
I recommend only supporting the OR case (or at least starting with that).
It's the expected user experience on the web, and I think it would be the
most useful. (AND would only be useful in some cases for many to many's.)
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:26>
Comment (by Collin Anderson):
Today I learned: Django admin already handles `?somefield__in=6,8,10` as
you would hope, there's just no UI for it.
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:27>
Comment (by Carlton Gibson):
Duplicates, looking for filters submitting multiple values in #31338 and
#29121.
For a query string like `?key=val1&key=val2&key=val3`,
[https://github.com/django/django/blob/c459a4661b2e96b53d3784c76e1fd5651b8cdc4a/django/contrib/admin/views/main.py#L87
`ChangeList.__init__()` drops all but the last value]:
{{{
self.params = dict(request.GET.items())
}}}
Even if we didn't ship filters using this, accepting multiple params would
let users implement such filters themselves.
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:28>
* cc: Sarah Boyce (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:29>
* owner: nobody => Sarah Boyce
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:30>
* needs_better_patch: 1 => 0
* ui_ux: 1 => 0
* needs_docs: 1 => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:31>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:32>
* needs_better_patch: 1 => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:33>
Comment (by Mariusz Felisiak):
#27559 was a duplicate.
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:34>
* stage: Accepted => Ready for checkin
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:35>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"d2b688b966f5d30414899549412d370e1317ddb8" d2b688b9]:
{{{
#!CommitTicketReference repository=""
revision="d2b688b966f5d30414899549412d370e1317ddb8"
Fixed #1873 -- Handled multi-valued query parameters in admin changelist
filters.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:38>
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):
In [changeset:"8d6f959be226edd9c0eb054a9babe9d4af399717" 8d6f959]:
{{{
#!CommitTicketReference repository=""
revision="8d6f959be226edd9c0eb054a9babe9d4af399717"
Refs #1873 -- Added test for IncorrectLookupParameters when list of values
is passed to RelatedFieldListFilter.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:36>
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):
In [changeset:"d03dc63177ad3ba6e685e314eed45d6a8ec5cb0c" d03dc63]:
{{{
#!CommitTicketReference repository=""
revision="d03dc63177ad3ba6e685e314eed45d6a8ec5cb0c"
Refs #1873 -- Used GET.lists() in admin filters.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/1873#comment:37>