From 0003034b106396713537dc9a0ea4bdc1167f498f Mon Sep 17 00:00:00 2001 From: Matt Hegarty Date: Sat, 13 Apr 2024 14:33:50 +0100 Subject: [PATCH] Fix regression of `form` not being passed to `get_import_resource_kwargs()` (#1789) * form param fix * added test for form in kwargs --- docs/changelog.rst | 5 +++++ import_export/admin.py | 2 +- tests/core/admin.py | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 391ca24b7..c84f40e2f 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -5,6 +5,11 @@ Changelog Version 4 introduces breaking changes. Please refer to :doc:`release notes`. +4.0.0-rc.3 (unreleased) +----------------------- + +- fix form not being passed to ``get_import_resource_kwargs()`` (#1789) + 4.0.0-rc.2 (2024-04-08) ----------------------- diff --git a/import_export/admin.py b/import_export/admin.py index 2965ab58f..2e39b5821 100644 --- a/import_export/admin.py +++ b/import_export/admin.py @@ -186,7 +186,7 @@ def process_dataset( request, **kwargs, ): - res_kwargs = self.get_import_resource_kwargs(request, **kwargs) + res_kwargs = self.get_import_resource_kwargs(request, form=form, **kwargs) resource = self.choose_import_resource_class(form, request)(**res_kwargs) imp_kwargs = self.get_import_data_kwargs(request=request, form=form, **kwargs) imp_kwargs["retain_instance_in_row_result"] = True diff --git a/tests/core/admin.py b/tests/core/admin.py index 3d1b8fbfb..4781a4ab5 100644 --- a/tests/core/admin.py +++ b/tests/core/admin.py @@ -82,6 +82,9 @@ def get_import_resource_kwargs(self, request, **kwargs): # update resource kwargs so that the Resource is passed the authenticated user # This is included as an example of how dynamic values # can be passed to resources + if "form" not in kwargs: + # test for #1789 + raise ValueError("'form' param was expected in kwargs") kwargs = super().get_resource_kwargs(request, **kwargs) kwargs.update({"user": request.user}) return kwargs