Просмотр исходного кода

More informative error message

Saria Hajjar 6 лет назад
Родитель
Сommit
7ad9e8a2fb
1 измененных файлов с 8 добавлено и 6 удалено
  1. 8 6
      netbox/dcim/forms.py

+ 8 - 6
netbox/dcim/forms.py

@@ -76,12 +76,14 @@ class InterfaceCommonForm:
 
         # Validate tagged VLANs; must be a global VLAN or in the same site
         else:
-            for tagged_vlan in tagged_vlans:
-                if tagged_vlan.site not in [self.cleaned_data['device'].site, None]:
-                    raise forms.ValidationError({
-                        'tagged_vlans': "The tagged VLAN ({}) must belong to the same site as the interface's parent "
-                                         "device/VM, or it must be global".format(tagged_vlan)
-                    })
+            valid_sites = [None, self.cleaned_data['device'].site]
+            invalid_vlans = [str(v) for v in tagged_vlans if v.site not in valid_sites]
+
+            if invalid_vlans:
+                raise forms.ValidationError({
+                    'tagged_vlans': "The tagged VLANs ({}) must belong to the same site as the interface's parent "
+                                    "device/VM, or they must be global".format(', '.join(invalid_vlans))
+                })
 
 
 class BulkRenameForm(forms.Form):