diff options
| author | sarahboyce <sarahvboyce95@gmail.com> | 2023-04-13 11:46:47 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-04-17 14:09:38 +0200 |
| commit | 594fcc2b7427f7baf2cf1a2d7cd2be61467df0c3 (patch) | |
| tree | 9406ab96668239a7fbdee33f2efb93592db22b36 /django/contrib/admin/options.py | |
| parent | 57f2b935b34d148c3c0d906fc8256765004b7b77 (diff) | |
Fixed #22569 -- Made ModelAdmin.lookup_allowed() respect get_list_filter().
Thank you Simon Meers for the initial patch.
Diffstat (limited to 'django/contrib/admin/options.py')
| -rw-r--r-- | django/contrib/admin/options.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 49c816dc9e..b0635669e9 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -436,7 +436,9 @@ class BaseModelAdmin(metaclass=forms.MediaDefiningClass): else self.get_list_display(request) ) - def lookup_allowed(self, lookup, value): + # RemovedInDjango60Warning: when the deprecation ends, replace with: + # def lookup_allowed(self, lookup, value, request): + def lookup_allowed(self, lookup, value, request=None): from django.contrib.admin.filters import SimpleListFilter model = self.model @@ -482,7 +484,12 @@ class BaseModelAdmin(metaclass=forms.MediaDefiningClass): # Either a local field filter, or no fields at all. return True valid_lookups = {self.date_hierarchy} - for filter_item in self.list_filter: + # RemovedInDjango60Warning: when the deprecation ends, replace with: + # for filter_item in self.get_list_filter(request): + list_filter = ( + self.get_list_filter(request) if request is not None else self.list_filter + ) + for filter_item in list_filter: if isinstance(filter_item, type) and issubclass( filter_item, SimpleListFilter ): |
