From 4a13ee6f401012c2edfe59a8a97186e37e41e35a Mon Sep 17 00:00:00 2001 From: thatmattlove Date: Tue, 7 Sep 2021 14:13:53 -0700 Subject: [PATCH] Fixes #7176: Reset query parameters on APISelect when deep copied --- docs/release-notes/version-3.0.md | 1 + netbox/utilities/forms/widgets.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docs/release-notes/version-3.0.md b/docs/release-notes/version-3.0.md index 81574a118..ac2ee021c 100644 --- a/docs/release-notes/version-3.0.md +++ b/docs/release-notes/version-3.0.md @@ -7,6 +7,7 @@ * [#7153](https://github.com/netbox-community/netbox/issues/7153) - Allow clearing of assigned device type images * [#7164](https://github.com/netbox-community/netbox/issues/7164) - Fix styling of "decommissioned" label for circuits * [#7169](https://github.com/netbox-community/netbox/issues/7169) - Fix CSV import file upload +* [#7176](https://github.com/netbox-community/netbox/issues/7176) - Fix issue where query parameters were duplicated across different forms of the same type * [#7193](https://github.com/netbox-community/netbox/issues/7193) - Fix prefix (flat) template issue when viewing child prefixes with prefixes available --- diff --git a/netbox/utilities/forms/widgets.py b/netbox/utilities/forms/widgets.py index 084f296c9..069cbf8db 100644 --- a/netbox/utilities/forms/widgets.py +++ b/netbox/utilities/forms/widgets.py @@ -163,6 +163,13 @@ class APISelect(SelectWithDisabled): if api_url: self.attrs['data-url'] = '/{}{}'.format(settings.BASE_PATH, api_url.lstrip('/')) # Inject BASE_PATH + def __deepcopy__(self, memo): + """Reset `static_params` and `dynamic_params` when APISelect is deepcopied.""" + result = super().__deepcopy__(memo) + result.dynamic_params = {} + result.static_params = {} + return result + def _process_query_param(self, key: str, value: JSONPrimitive) -> None: """ Based on query param value's type and value, update instance's dynamic/static params.