Make sure we bail out if field validation failed when importing modules

This commit is contained in:
kkthxbye-code 2022-12-30 18:08:50 +01:00
parent 08a419ec7a
commit 472542b888
2 changed files with 11 additions and 7 deletions

View File

@ -54,13 +54,17 @@ class InterfaceCommonForm(forms.Form):
class ModuleCommonForm(forms.Form):
def clean(self):
super().clean()
cleaned_data = super().clean()
replicate_components = self.cleaned_data.get("replicate_components")
adopt_components = self.cleaned_data.get("adopt_components")
device = self.cleaned_data.get('device')
module_type = self.cleaned_data.get('module_type')
module_bay = self.cleaned_data.get('module_bay')
# Skip form validation if field validation already found errors.
if self.errors:
return cleaned_data
replicate_components = cleaned_data.get("replicate_components")
adopt_components = cleaned_data.get("adopt_components")
device = cleaned_data.get('device')
module_type = cleaned_data.get('module_type')
module_bay = cleaned_data.get('module_bay')
if adopt_components:
self.instance._adopt_components = True

View File

@ -961,7 +961,7 @@ class Module(PrimaryModel, ConfigContextModel):
def clean(self):
super().clean()
if self.module_bay.device != self.device:
if hasattr(self, "module_bay") and (self.module_bay.device != self.device):
raise ValidationError(
f"Module must be installed within a module bay belonging to the assigned device ({self.device})."
)