formsets.py 772 B

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