Opened 10 years ago
Closed 9 years ago
#22810 closed Bug (fixed)
full_result_count optimization is wrong in the presence of custom ListFilters
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | contrib.admin | Version: | 1.6 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
ChangeList.get_results performs an optimization when counting the total number of results, disregarding list filters. It assumes that if there are no query parameters, the full count is the same as the filtered count. This is incorrect when a custom list filter does filtering when there are no query parameters.
In my case, the list filter filters the objects by default, and removes the filtering with a query parameter. The optimization incorrectly assumes that there is no filtering by default, so the total result count is wrong.
https://github.com/django/django/blob/master/django/contrib/admin/views/main.py#L172, see 'Perform a slight optimization'.
Change History (4)
comment:1 by , 10 years ago
Triage Stage: | Unreviewed → Accepted |
---|---|
Type: | Uncategorized → Bug |
comment:2 by , 9 years ago
comment:3 by , 9 years ago
Has patch: | set |
---|
PR here: https://github.com/django/django/pull/5576.