Как заставить валидатор формы django работать с каждым объектом с ModelMultipleChoiceField, а не с набором запросов в целом
У меня есть модельная форма, которая генерирует серию флажков для добавления дочерних элементов к родительской части. Я создал валидатор, который проверяет циклические отношения. В настоящее время я получаю ошибки, поскольку "proposed_child" является набором запросов, содержащим столько значений, сколько выбрал пользователь. Как мне заставить этот валидатор работать с каждым объектом в этом наборе запросов?
def __init__(self, qs, part, *args, **kwargs):
super(AddPartToAssemblyForm, self).__init__(*args, **kwargs)
self.part = part
self.fields['children'] = forms.ModelMultipleChoiceField(
queryset=qs,
widget=forms.CheckboxSelectMultiple
)
def clean_children(self):
proposed_child = self.cleaned_data['children']
part = self.part
validate_acyclic_relationship(part, proposed_child)
class Meta:
model = Part
fields = ['children']
Я разобрался с этим, я изменил proposed_child на proposed children и изменил мой валидатор так, чтобы он перебирал полученный набор запросов и проверял каждый объект по очереди.
Теперь у меня работает валидатор, но если данные валидны, форма не возвращает ничего в form.cleaned_data['children']
--редактировать--
необходимо return proposed_children в конце clean_children