diff --git a/netbox/extras/forms/scripts.py b/netbox/extras/forms/scripts.py index 5f9820b44e2..52969a8dc0c 100644 --- a/netbox/extras/forms/scripts.py +++ b/netbox/extras/forms/scripts.py @@ -69,8 +69,17 @@ def save(self, *args, **kwargs): storage = storages.create_storage(storages.backends["scripts"]) filename = self.cleaned_data['upload_file'].name - self.instance.file_path = filename data = self.cleaned_data['upload_file'] + + # If editing an existing file, delete the old one first to avoid random suffix + if self.instance.pk and self.instance.file_path: + try: + storage.delete(self.instance.file_path) + except FileNotFoundError: + pass + + # Save the new file and capture the actual filename + self.instance.file_path = filename storage.save(filename, data) # need to skip ManagedFileForm save method