formsets.py 637 B

123456789101112131415161718192021
  1. from django import forms
  2. __all__ = (
  3. 'BaseVCMemberFormSet',
  4. )
  5. class BaseVCMemberFormSet(forms.BaseModelFormSet):
  6. def clean(self):
  7. super().clean()
  8. # Check for duplicate VC position values
  9. vc_position_list = []
  10. for form in self.forms:
  11. vc_position = form.cleaned_data.get('vc_position')
  12. if vc_position:
  13. if vc_position in vc_position_list:
  14. error_msg = f"A virtual chassis member already exists in position {vc_position}."
  15. form.add_error('vc_position', error_msg)
  16. vc_position_list.append(vc_position)