From 52a1f9ddf0bca2a8148eaf51d299b1959f5e9a42 Mon Sep 17 00:00:00 2001 From: thatmattlove Date: Thu, 26 Aug 2021 00:27:22 -0700 Subject: [PATCH] Add filter_fields to extras.ObjectVar & fix default value handling --- netbox/extras/scripts.py | 5 ++++- netbox/utilities/forms/fields.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py index 156b88065..14fc59c72 100644 --- a/netbox/extras/scripts.py +++ b/netbox/extras/scripts.py @@ -181,16 +181,19 @@ class ObjectVar(ScriptVariable): :param model: The NetBox model being referenced :param query_params: A dictionary of additional query parameters to attach when making REST API requests (optional) + :param filter_fields: A dictionary or list of dictionaries that define a related + field. Example: `{'accessor': 'group_id', 'field_name': 'tenant_group'}` (optional) :param null_option: The label to use as a "null" selection option (optional) """ form_field = DynamicModelChoiceField - def __init__(self, model, query_params=None, null_option=None, *args, **kwargs): + def __init__(self, model, query_params=None, filter_fields=None, null_option=None, *args, **kwargs): super().__init__(*args, **kwargs) self.field_attrs.update({ 'queryset': model.objects.all(), 'query_params': query_params, + 'filter_fields': filter_fields, 'null_option': null_option, }) diff --git a/netbox/utilities/forms/fields.py b/netbox/utilities/forms/fields.py index 07263a133..ce924f75e 100644 --- a/netbox/utilities/forms/fields.py +++ b/netbox/utilities/forms/fields.py @@ -416,7 +416,7 @@ class DynamicModelChoiceMixin: widget.add_query_param(key, value) # Attach any dynamic query parameters - if len(self.filter_fields) > 0: + if self.filter_fields is not None and len(self.filter_fields) > 0: widget.add_filter_fields(self.filter_fields) return attrs