From 1da693ebffdd3be68bfc64ad838dabd8f5b8febf Mon Sep 17 00:00:00 2001 From: rolandcrosby-check <88003730+rolandcrosby-check@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:03:03 -0500 Subject: [PATCH] Fix extra_context argument type in admin views (#816) The `extra_context` argument to `ModelAdmin.changeform_view`, `add_view`, `change_view`, `changelist_view`, `delete_view`, and `history_view` is used to pass extra context variables to a template, so all of these arguments should have type `Optional[Dict[str, Any]]`. Instead, these are currently typed as `Optional[Dict[str, bool]]`, `Optional[Dict[str, str]]`, or `None`. --- django-stubs/contrib/admin/options.pyi | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/django-stubs/contrib/admin/options.pyi b/django-stubs/contrib/admin/options.pyi index ca3d74c..f285b00 100644 --- a/django-stubs/contrib/admin/options.pyi +++ b/django-stubs/contrib/admin/options.pyi @@ -249,21 +249,27 @@ class ModelAdmin(BaseModelAdmin[_ModelT]): request: HttpRequest, object_id: Optional[str] = ..., form_url: str = ..., - extra_context: Optional[Dict[str, bool]] = ..., + extra_context: Optional[Dict[str, Any]] = ..., ) -> Any: ... def autocomplete_view(self, request: HttpRequest) -> JsonResponse: ... - def add_view(self, request: HttpRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ... + def add_view( + self, request: HttpRequest, form_url: str = ..., extra_context: Optional[Dict[str, Any]] = ... + ) -> HttpResponse: ... def change_view( - self, request: HttpRequest, object_id: str, form_url: str = ..., extra_context: Optional[Dict[str, bool]] = ... + self, request: HttpRequest, object_id: str, form_url: str = ..., extra_context: Optional[Dict[str, Any]] = ... ) -> HttpResponse: ... def changelist_view( - self, request: HttpRequest, extra_context: Optional[Dict[str, str]] = ... + self, request: HttpRequest, extra_context: Optional[Dict[str, Any]] = ... ) -> TemplateResponse: ... def get_deleted_objects( self, objs: QuerySet, request: HttpRequest ) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ... - def delete_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> Any: ... - def history_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ... + def delete_view( + self, request: HttpRequest, object_id: str, extra_context: Optional[Dict[str, Any]] = ... + ) -> Any: ... + def history_view( + self, request: HttpRequest, object_id: str, extra_context: Optional[Dict[str, Any]] = ... + ) -> HttpResponse: ... class InlineModelAdmin(BaseModelAdmin[_ModelT]): model: Type[_ModelT] = ...