From e15638f7bef26b204c6a58f0f3dc70362c782330 Mon Sep 17 00:00:00 2001 From: Renato Almeida de Oliveira Zaroubin Date: Tue, 11 Feb 2025 23:18:25 +0000 Subject: [PATCH] Change __init__ of CustomFieldChoiceSetForm to setup extra_choices --- netbox/extras/forms/model_forms.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py index a45daaf70..d1255cd32 100644 --- a/netbox/extras/forms/model_forms.py +++ b/netbox/extras/forms/model_forms.py @@ -178,12 +178,15 @@ class CustomFieldChoiceSetForm(forms.ModelForm): def __init__(self, *args, initial=None, **kwargs): super().__init__(*args, initial=initial, **kwargs) - # Escape colons in extra_choices + # Convert extra_choices Array Field from model to CharField for form if 'extra_choices' in self.initial and self.initial['extra_choices']: - choices = [] - for choice in self.initial['extra_choices']: - choice = (choice[0].replace(':', '\\:'), choice[1].replace(':', '\\:')) - choices.append(choice) + extra_choices = self.initial['extra_choices'] + if isinstance(extra_choices, str): + extra_choices = [extra_choices] + choices = "" + for choice in extra_choices: + choice_str = ":".join(choice.replace("'", "").replace(" ", "")[1:-1].split(",")) + choices += choice_str + "\n" self.initial['extra_choices'] = choices