Django - получение значений из набора форм

Я пытался получить значение из набора форм, произвести некоторые вычисления и передать результат. Мой код таков:

    def form_valid(self, form, formset):

        rndid2 = RndIds()

        form.instance.doc_added_by = self.request.user
        form.instance.doc_guid = rndid2.random_doc_guid()

        instances = formset.save(commit=False)
        for instance in instances:
            cd = instance.cleaned_data()
            at_id=cd.get('att_guid')
            instance.att_added_by = str(self.request.user)
            instance.att_ctrl_sum = rndid2.random_doc_application_id(at_id)
            instance.save()
        
        return HttpResponseRedirect(self.get_success_url())

Но получил ошибку

 'Att' object has no attribute 'cleaned_data'

Att - моя модель

Как я могу получить значения набора форм?

Ответ прост, как только вы вызвали метод сохранения formset save method с commit=False. Все возвращаемые экземпляры - это объекты, полученные в результате работы с набором форм. Поэтому, поскольку у экземпляров модели нет свойства clean_data (только у Forms), вы получаете ошибку.

Чтобы решить эту проблему, измените for на следующее:

for instance in instances:
            at_id=instance.att_guid
            instance.att_added_by = str(self.request.user)
            instance.att_ctrl_sum = rndid2.random_doc_application_id(at_id)
            instance.save()
Вернуться на верх