mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-19 11:52:22 -06:00
This commit is contained in:
@@ -449,7 +449,14 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
|
|||||||
return model.objects.filter(pk__in=value)
|
return model.objects.filter(pk__in=value)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def to_form_field(self, set_initial=True, enforce_required=True, enforce_visibility=True, for_csv_import=False):
|
def to_form_field(
|
||||||
|
self,
|
||||||
|
set_initial=True,
|
||||||
|
enforce_required=True,
|
||||||
|
enforce_visibility=True,
|
||||||
|
for_csv_import=False,
|
||||||
|
for_filterset_form=False,
|
||||||
|
):
|
||||||
"""
|
"""
|
||||||
Return a form field suitable for setting a CustomField's value for an object.
|
Return a form field suitable for setting a CustomField's value for an object.
|
||||||
|
|
||||||
@@ -457,6 +464,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
|
|||||||
enforce_required: Honor the value of CustomField.required. Set to False for filtering/bulk editing.
|
enforce_required: Honor the value of CustomField.required. Set to False for filtering/bulk editing.
|
||||||
enforce_visibility: Honor the value of CustomField.ui_visible. Set to False for filtering.
|
enforce_visibility: Honor the value of CustomField.ui_visible. Set to False for filtering.
|
||||||
for_csv_import: Return a form field suitable for bulk import of objects in CSV format.
|
for_csv_import: Return a form field suitable for bulk import of objects in CSV format.
|
||||||
|
for_filterset_form: Return a form field suitable for use in a FilterSet form.
|
||||||
"""
|
"""
|
||||||
initial = self.default if set_initial else None
|
initial = self.default if set_initial else None
|
||||||
required = self.required if enforce_required else False
|
required = self.required if enforce_required else False
|
||||||
@@ -519,7 +527,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
|
|||||||
field_class = CSVMultipleChoiceField
|
field_class = CSVMultipleChoiceField
|
||||||
field = field_class(choices=choices, required=required, initial=initial)
|
field = field_class(choices=choices, required=required, initial=initial)
|
||||||
else:
|
else:
|
||||||
if self.type == CustomFieldTypeChoices.TYPE_SELECT:
|
if self.type == CustomFieldTypeChoices.TYPE_SELECT and not for_filterset_form:
|
||||||
field_class = DynamicChoiceField
|
field_class = DynamicChoiceField
|
||||||
widget_class = APISelect
|
widget_class = APISelect
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -205,4 +205,6 @@ class NetBoxModelFilterSetForm(CustomFieldsMixin, SavedFiltersMixin, forms.Form)
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _get_form_field(self, customfield):
|
def _get_form_field(self, customfield):
|
||||||
return customfield.to_form_field(set_initial=False, enforce_required=False, enforce_visibility=False)
|
return customfield.to_form_field(
|
||||||
|
set_initial=False, enforce_required=False, enforce_visibility=False, for_filterset_form=True
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user