Использование набора форм в django formtool

Я создаю 8-шаговый мастер создания форм. 2 из моделей - квалификация и SSCE, и я использовал набор форм для создания нескольких входов формы

Фабрика форм QualificationsFormSet = modelformset_factory(Qualifications, form=QualificationsForm, extra=5) SscesFormSet = modelformset_factory(Ssces, form=SSCESubjectForm, extra=5) представление

class StudentWizard(LoginRequiredMixin, SessionWizardView):
    form_list = FORMS
    # template_name = 'admission/form_wizard.html'
    file_storage = FileSystemStorage(location='/tmp/')
    
        
    def get_form(self, step=None, data=None, files=None):
        if step is None:
            step = self.steps.current
        form = super().get_form(step, data, files)
        form.request = self.request
        
        if step == '3':
            form = QualificationsFormSet(data, queryset=Qualifications.objects.none())
        elif step == '4':
            form = SscesFormSet(data, queryset=Ssces.objects.none())
        
        return form
    
    def get_form_instance(self, step):
        print(f"Current step: {step}")
        if step == '4':  # SSCE step
            qualifications = self.get_cleaned_data_for_step('3')
            print(f"Qualifications data: {qualifications}")
            if qualifications:
                certificates = [qual['certificate_obtained'] for qual in qualifications]
                print(f"Certificates: {certificates}")
                if not any(cert in ['WASC', 'SSCE', 'NECO', 'GCE'] for cert in certificates):
                    print("Skipping SSCE step")
                    return None  # Skip the Ssces formset

        return super().get_form_instance(step)
    
    def get_context_data(self, form, **kwargs):
        context = super().get_context_data(form=form, **kwargs)  
        if self.steps.current in ["3", "4"]:
            context['formset'] = form
            context['formset_with_widgets'] = [
                [(field, field.field.widget.__class__.__name__) for field in form]
                for form in context['formset'].forms
            ]
        else:
            context['fields_with_widgets'] = [
                (field, field.field.widget.__class__.__name__) for field in form
            ]
            
        return context

проблема в том, что другие формы работают хорошо вплоть до квалификации, где после отправки набора форм для квалификации мастер все равно возвращается к шаблону квалификации вместо того, чтобы перейти к шаблону ssce.html.

вывод первого набора форм введите описание изображения здесь

во-вторых, после первой отправки он возвращает пустую форму шаблона квалификации введите описание изображения здесь

Я использовал отладку, чтобы проверить, где могла возникнуть ошибка. Я заметил, что она находится вокруг get_form() и get_form_instance()

Ядро вроде в порядке. Не знаю, где я его испортил

пожалуйста, мне нужна помощь, чтобы исправить это. спасибо всем в ожидании

Вернуться на верх