diff --git a/core/admin.py b/core/admin.py index 505d52f4..9a727cd1 100644 --- a/core/admin.py +++ b/core/admin.py @@ -42,15 +42,17 @@ class RelatedAutocompleteFilter(FieldListFilter): limit = 10 def __init__(self, field, request, params, model, model_admin, field_path): + super().__init__(field, request, params, model, model_admin, field_path) + self.lookup_kwarg = f"{field_path}__{field.target_field.name}__exact" self.lookup_val = params.get(self.lookup_kwarg, "") - remote = field.remote_field.model._meta + remote_opts = field.remote_field.model._meta base_url = reverse("admin:autocomplete") self.autocomplete_url = ( f"{base_url}" - f"?app_label={remote.app_label}" - f"&model_name={remote.model_name}" + f"?app_label={remote_opts.app_label}" + f"&model_name={remote_opts.model_name}" f"&field_name={field.name}" f"&limit={self.limit}" ) @@ -63,12 +65,13 @@ class RelatedAutocompleteFilter(FieldListFilter): def choices(self, changelist): yield { - "selected": bool(self.lookup_val), - "query_string": changelist.get_query_string( - ({self.lookup_kwarg: self.lookup_val} if self.lookup_val else {}), - [] - ), - "display": _("—"), + "selected": bool(self.lookup_val), + "query_string": changelist.get_query_string( + ({self.lookup_kwarg: self.lookup_val} + if self.lookup_val else {}), + [] + ), + "display": _("—"), "autocomplete_url": self.autocomplete_url, "lookup_kwarg": self.lookup_kwarg, "lookup_val": self.lookup_val,