from django import forms class LectureGroupTypeFormset(forms.models.BaseInlineFormSet): # https://stackoverflow.com/a/877920 def clean(self): groups = [] for form in self.forms: try: if form.cleaned_data: if form.cleaned_data[ "group" ] in groups and not form.cleaned_data.get("DELETE", False): raise forms.ValidationError( "Školení nemůžeš přiřadit jednotlivé skupině více než jednou." ) groups.append(form.cleaned_data["group"]) except AttributeError as exception: # annoyingly, if a subform is invalid Django explicity raises # an AttributeError for cleaned_data pass